标签: nested-lists

Python:顺序重要的嵌套列表的交集

我想在维护顺序的同时找到嵌套列表之间的交集.

taxa = [['E_pyrifoliae_Ep1_96', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia'],
 ['E_amylovora_CFBP1430', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia'], 
 ['E_amylovora_ATCC49946', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia']]
Run Code Online (Sandbox Code Playgroud)

找到我的交集点:

set.intersection(*map(set, taxa))
Run Code Online (Sandbox Code Playgroud)

要么

set(taxa[0]).intersection(*taxa)
Run Code Online (Sandbox Code Playgroud)

但原始订单没有保留.

set(['Erwinia', 'Gammaproteobacteria', 'Enterobacteriaceae', 'Enterobacteriales', 'Proteobacteria', 'Bacteria'])
Run Code Online (Sandbox Code Playgroud)

基本上,我需要做的是找到嵌套列表之间的最后一个共同元素(它们是分类学分类).因此,当我可以调用最后一个条目时,我不需要找到所有交叉点,只需要找到最后一个或所有交叉点.

intersection_lst[-1]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望输出为'Erwinia'.

谢谢你的帮助.

python intersection list nested-lists

8
推荐指数
1
解决办法
1765
查看次数

替换列表列表中的字符串

我有一个字符串列表列表,如:

example = [["string 1", "a\r\ntest string:"],["string 1", "test 2: another\r\ntest string"]]
Run Code Online (Sandbox Code Playgroud)

我想"\r\n"用空格替换(并删除":"所有字符串的末尾).

对于普通列表,我会使用列表理解来删除或替换项目

example = [x.replace('\r\n','') for x in example]
Run Code Online (Sandbox Code Playgroud)

甚至是lambda函数

map(lambda x: str.replace(x, '\r\n', ''),example)
Run Code Online (Sandbox Code Playgroud)

但我不能让它为嵌套列表工作.有什么建议?

python replace list nested-lists python-3.x

8
推荐指数
2
解决办法
8534
查看次数

多维列表?清单清单?列表数组?

(我在这个问题上明确地使用了错误的术语,对不起 - 我只是不知道用R术语描述这个的正确方法......)

我想创建一个异构对象的结构.尺寸不是必需的矩形.我需要的可能只是在其他语言中称为"对象数组",如"对象".我指的是由不同成员组成的结构,即只是R中的列表 - 例如:

myObject <- list(title="Uninitialized title", xValues=rep(NA,50), yValues=rep(NA,50)) 
Run Code Online (Sandbox Code Playgroud)

现在我想制作100个这样的对象,并且能够用类似的东西来解决他们的成员

for (i in 1:100) {myObject[i]["xValues"]<-rnorm(50)}
Run Code Online (Sandbox Code Playgroud)

要么

for (i in 1:100) {myObject[i]$xValues<-rnorm(50)}
Run Code Online (Sandbox Code Playgroud)

我会很感激任何描述这件事情的暗示.

提前致谢!

arrays r list matrix nested-lists

8
推荐指数
2
解决办法
2万
查看次数

有效的算法而不是循环

我有一个数据集,每个样本的结构都与此类似

X=[ [[],[],[],[]], [[],[]] , [[],[],[]] ,[[][]]]
Run Code Online (Sandbox Code Playgroud)

例如:

X=np.array([ [ [1,2,3], [2,4,5] ,[2,3,4] ] , [ [5,6], [6,6] ] , [[2,3,1],[2,3,10],[23,1,2],[1,4,5]]  ] ,"object")

Y=np.array([ [ [12,14,15] ,[12,13,14] ] , [ [15,16], [16,16] ] , [[22,23,21],[32,33,11],[12,44,55]]  ] ,"object")
Run Code Online (Sandbox Code Playgroud)

因此,对于每个样本,我需要计算x的每个元素与相同索引的y的相应元素之间的点积并对结果求和.即:

result=0

for i in range(3):
    for n,m in itertools.product(X[i],Y[i]):
        print "%s, %s" % (n,m)
        result+=np.dot(n,m)

   .....:         
[1, 2, 3], [12, 14, 15]
[1, 2, 3], [12, 13, 14]
[2, 4, 5], [12, 14, 15]
[2, 4, 5], [12, 13, 14] …
Run Code Online (Sandbox Code Playgroud)

python algorithm nested-lists nested-loops

8
推荐指数
1
解决办法
302
查看次数

如何使用<ui:repeat>迭代嵌套列表?

使用JSF 2.0,我需要显示一个表,其中每行包含一个打开弹出窗口的链接.我有两个模型:A具有idList<B>属性B,具有idname属性.在我的支持bean中,我有一个List<A>属性.在我看来,我正在使用<ui:repeat>迭代List<A>.

的要求是,这取决于用户点击,则对应的行List<B>A需要被显示出来.但是,<ui:repeat>不接受在var属性中分配的嵌套列表.因此,我需要做很多无效的解决方法.

我该如何有效地解决这个问题?

jsf nested-lists jsf-2 uirepeat

8
推荐指数
1
解决办法
4万
查看次数

在嵌套的列表列表中查找空列表

给定一个任意嵌套的列表,如何找到列表是否包含空列表?请考虑以下示例:

mylist <- list(list("foo", "bar", "baz", list(list())))

我试过了rapply,但是跳过了列表.虽然我可以使用lapply,但我需要事先知道嵌套的级别.对于本练习,我不需要知道列表的位置(虽然这将是一个奖励),我只需要一种方法来检测是否有一个.

r nested-lists

8
推荐指数
2
解决办法
539
查看次数

Pythonic增加列表列表的方法

我有一个大文件(2GB)的分类数据(大多数是"Nan" - 但在这里和那里填充了实际值)太大而无法读入单个数据帧.我有一个相当困难的时间想出一个对象来存储每列的所有唯一值(这是我的目标 - 最终我需要将其分解为建模)

我最后做的是将文件以块的形式读入数据帧,然后获取每列的唯一值并将它们存储在列表列表中.我的解决方案的工作,但似乎大多数非Python的 - 有没有在Python做到这一点(版本3.5)一个更清洁的方式.我知道列数(~2100).

import pandas as pd
#large file of csv separated text data
data=pd.read_csv("./myratherlargefile.csv",chunksize=100000, dtype=str)

collist=[]
master=[]
i=0
initialize=0
for chunk in data:
    #so the first time through I have to make the "master" list
    if initialize==0:
        for col in chunk:
            #thinking about this, i should have just dropped this col
            if col=='Id':
                continue
            else:
                #use pd.unique as a build in solution to get unique values
                collist=chunk[col][chunk[col].notnull()].unique().tolist()
                master.append(collist)
                i=i+1
    #but after first loop just …
Run Code Online (Sandbox Code Playgroud)

python list nested-lists

8
推荐指数
1
解决办法
371
查看次数

将深度嵌套的列表转换为数据框

我有一个深度嵌套的列表,我想转换为数据框。下面是结构的样子:

ls <- list('10' = list('123' = list('0.1' = list(Gmax.val = rnorm(1),
                                                 G2.val = rnorm(1),
                                                 Gmax.vec = rnorm(8),
                                                 G2.vec = rnorm(8)),
                                    '0.2' = list(Gmax.val = rnorm(1),
                                                 G2.val = rnorm(1),
                                                 Gmax.vec = rnorm(8),
                                                 G2.vec = rnorm(8))),
                       '456' = list ('0.1' = list(Gmax.val = rnorm(1),
                                                  G2.val = rnorm(1),
                                                  Gmax.vec = rnorm(8),
                                                  G2.vec = rnorm(8)),
                                     '0.2' = list(Gmax.val = rnorm(1),
                                                  G2.val = rnorm(1),
                                                  Gmax.vec = rnorm(8),
                                                  G2.vec = rnorm(8)))),
           '20' = list('123' = list('0.1' = list(Gmax.val = rnorm(1),
                                                 G2.val = rnorm(1),
                                                 Gmax.vec = …
Run Code Online (Sandbox Code Playgroud)

r nested-lists dataframe

8
推荐指数
1
解决办法
325
查看次数

混淆 .fmt 行为与嵌套列表

文档说fmt

\n
\n

返回一个字符串,其中列表中的每个元素均已根据$format[第一个参数] 进行格式化,并且每个元素均由$separator[第二个参数] 分隔。

\n
\n

根据该描述,我希望能够调用.fmt列表列表,然后传递一个printf-style 格式字符串,其中%包含内部列表中每个元素的指令。但这是行不通的。

\n

如果您告诉我我对 ^^^^ 的看法是错误的,我会期望它.fmt会自动展平其参数,因此每个参数都会被格式化并由$separator. 但事实并非如此。

\n

相反,运行此代码

\n
\nsay (<a b c>, <1 2 3>, <X Y Z>).fmt(\'\xe2\x86\x92%03s|\', "\\n=================\\n");\n
Run Code Online (Sandbox Code Playgroud)\n

产生这个输出:

\n
\xe2\x86\x9200a| \xe2\x86\x9200b| \xe2\x86\x9200c|\n=================\n\xe2\x86\x92001| \xe2\x86\x92002| \xe2\x86\x92003|\n=================\n\xe2\x86\x9200X| \xe2\x86\x9200Y| \xe2\x86\x9200Z|\n
Run Code Online (Sandbox Code Playgroud)\n

也就是说,格式字符串应用于内部列表中的每个元素,然后对这些列表进行字符串化(使用格式字符串;注意 每个|\xe2\x86\x92字符之间),然后在每个外部列表之间插入分隔符列表之间插入分隔符。

\n

这给我留下了三个问题:

\n
    \n
  1. 我是否正确描述/理解了当前的行为?[编辑:不。见下文]
  2. \n
  3. 这种行为是故意的还是奇怪的错误?(我检查了 Roast,但没有看到任何东西)
  4. \n
  5. 假设这是故意的,为什么?有什么方法可以使这与 …

formatting printf nested-lists rakudo raku

8
推荐指数
1
解决办法
185
查看次数

从clojure中的序列中获取元素

据我所知,在大多数情况下,Clojure中的列表和向量几乎可以互换使用.这是一个让我感到惊讶的简单案例

(nth [2 4] 0) ;=> 2
(nth '(2 4) 0) ;=> 2
(get [2 4] 0) ;=> 2
(get '(2 4) 0) ;=> nil -- wtf???
Run Code Online (Sandbox Code Playgroud)

会话的文档get映射一个键,但它适用于矢量或集合很好.nth甚至提到的文档,get仅在边缘情况下讨论它们之间的差异.

我遇到这种奇怪行为的真实情况是我加载了一个yaml文件.它产生了一个嵌套的地图和列表结构.我想用一个元素访问get-in.

(def form (parse-yaml some-yaml-file))
(def best-friend (get-in form [:friends 0 :first-name]))
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为内部get-in使用get.所以我有一个理论和实际的问题:

  • 这种行为是否get被认为是正确和预期的?如果是这样,请解释原因.
  • 如何在这种地图和列表结构中访问嵌套元素?

clojure nested-lists lazy-sequences

7
推荐指数
2
解决办法
5603
查看次数