Tag: 列表

Prolog只删除唯一的元素

我想返回一个列表,例如删除所有独特的元素 remUniqueVals([1,1,2,2,3,4,4,5,6,6,6],Q). Q = [1,1,2,2,4,4,6,6,6]. 我的问题是,目前我有代码返回 remUniqueVals([1,1,2,2,3,4,4,5,6,6,6],Q). Q = [1, 2, 4, 6, 6]. 这样只返回这些非唯一值的第一个实例。 这是我的代码: remUniqueVals([], []). remUniqueVals([Q1|RestQ],[Q1|Xs]) :- member(Q1,RestQ), remUniqueVals(RestQ,Xs). remUniqueVals([Q1|RestQ],Xs) :- remove(Q1,[Q1|RestQ], NewQ), remUniqueVals(NewQ,Xs). 我可以看到member(Q1,RestQ)在第二次检查1,2,4时失败,因为他们现在不在列表中,因此将其删除。 我想要一些帮助解决这个问题,我的想法是检查member(Q1, PreviousQ) ,这是最后Q的元素。 不知道如何去执行,虽然任何帮助,将不胜感激。 更新: 好的,谢谢你们提出的build议, remUniqueVals(_,[], []). remUniqueVals(_,[Q1|RestQ],[Q1|Xs]) :- member(Q1,RestQ), remUniqueVals(Q1,RestQ,Xs). remUniqueVals(PrevQ,[Q1|RestQ],[Q1|Xs]) :- Q1 = PrevQ, remUniqueVals(PrevQ,RestQ,Xs). remUniqueVals(PrevQ,[_|RestQ],Xs) :- remUniqueVals(PrevQ,RestQ,Xs). remUniqueVals(0,[4,1,1,3,2,2,5,5],Q). Q = [1, 1, 2, […]

testing数组是否在lisp的列表中

我有两个项目。 第一个是a-child ,它包含一个数组作为其第一个元素,然后是一些string作为其余元素。 另一个mapped是一个包含大量数组的列表。 通过检查,很容易看出a-child是在mapped ,虽然我找不到一个函数,将为我find它。 我为下面这个可怜的Lisp风格道歉 – 前几天我开始了,所以我还没有拿起所有的惯例。 (defparameter a-child (list (#2A((1 2 3) (7 4 5) (9 8 6))) "U" "R" "R")) (defparameter mapped (list (#2A((1 2 3) (7 4 5) (9 8 6))) (#2A((1 2 3) (4 5 6) (7 8 9))))) (find (car a-child) mapped) ;;returns NIL (member (car a-child) mapped) […]

variables赋值和修改(在Python中)

当我运行这个脚本(Python v2.6)时: a = [1,2] b = a a.append(3) print a >>>> [1,2,3] print b >>>> [1,2,3] 我期望print b输出[1,2] 。 当我所做的一切都改变了,为什么b变了? B是永久性的吗? 如果是的话,我可以让他们独立吗? 怎么样?

使用乘法(*)生成子列表出乎意料的行为

我确信这个问题已经在某个地方得到了解答,但我不确定如何描述它。 假设我想创build一个包含3个空列表的列表,如下所示: lst = [[], [], []] 我以为我这样做很聪明: lst = [[]] * 3 但是我发现,在debugging了一些奇怪的行为之后,这引起了一个附加的更新,比如说lst[0].append(3) ,来更新整个列表,使[[3], [3], [3]]而不是[[3], [], []] 。 但是,如果我初始化列表 lst = [[] for i in range(3)] 然后做lst[1].append(5)给出预期的[[], [5], []] 我的问题是为什么会发生这种情况 ? 有意思的是,如果我这样做 lst = [[]]*3 lst[0] = [5] lst[0].append(3) 那么单元0的'连接'就会被破坏,我得到[[5,3],[],[]] ,但是lst[1].append(0)仍然会导致[[5,3],[0],[0] 。 我最好的猜测是使用[[]]*xforms的乘法会导致Python存储对单个单元格的引用…?

如何创buildList <T>的新的深层副本(克隆)?

在下面的一段代码中, using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace clone_test_01 { public partial class MainForm : Form { public class Book { public string title = ""; public Book(string title) { this.title = title; } } public MainForm() { InitializeComponent(); List<Book> books_1 = new List<Book>(); books_1.Add( new Book("One") ); books_1.Add( new Book("Two") ); books_1.Add( […]

inheritance自List <T>

实现从List<T>inheritance的新类的最快方法是什么? class Animal {} class Animals : List<Animal> {} // (1) 我遇到的一个问题:通过简单地做(1) ,我发现我没有得到从List<T>inheritance任何构造函数的好处。 最后,我想Animals行为很像一个List<T> (例如,可以构build,与Linq兼容)。 但是,另外,我也希望能够添加我自己的自定义方法。

在Python中查找列表的中位数

你如何findPython中列表的中位数? 该列表可以是任何大小的,并且数字不能保证以任何特定顺序。 如果列表包含偶数个元素,则该函数应该返回中间两个的平均值。 以下是一些示例(按显示目的sorting): median([1]) == 1 median([1, 1]) == 1 median([1, 1, 2, 4]) == 1.5 median([0, 2, 5, 6, 8, 9, 9]) == 6 median([0, 0, 0, 0, 4, 4, 6, 8]) == 2

在单行中打印没有括号的列表

我有一个Python列表例如 names = ["Sam", "Peter", "James", "Julian", "Ann"] 我想打印数组在一行中没有正常的“[] names = ["Sam", "Peter", "James", "Julian", "Ann"] print (names) 将输出作为; ["Sam", "Peter", "James", "Julian", "Ann"] 这不是我想要的格式,而是我希望它是这样的; Sam, Peter, James, Julian, Ann 注意:它必须在一行中。

将JSONstring转换为字典而不是列表

我想传递一个JSON文件并将数据转换成字典。 到目前为止,这是我所做的: import json json1_file = open('json1') json1_str = json1_file.read() json1_data = json.loads(json1_str) 我期待json1_data是一个json1_data ,但它实际上出来作为一个listtypes,当我检查type(json1_data) 。 我错过了什么? 我需要这个字典,所以我可以访问其中一个键。

如何select一个项目的概率?

我有一个项目列表。 每个项目都有自己的概率。 任何人都可以提出一个algorithm来select一个项目的概率?