我想在维护顺序的同时找到嵌套列表之间的交集.
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'.
谢谢你的帮助.
我有一个字符串列表列表,如:
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)
但我不能让它为嵌套列表工作.有什么建议?
(我在这个问题上明确地使用了错误的术语,对不起 - 我只是不知道用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)
我会很感激任何描述这件事情的暗示.
提前致谢!
我有一个数据集,每个样本的结构都与此类似
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) 使用JSF 2.0,我需要显示一个表,其中每行包含一个打开弹出窗口的链接.我有两个模型:A具有id和List<B>属性B,具有id和name属性.在我的支持bean中,我有一个List<A>属性.在我看来,我正在使用<ui:repeat>迭代List<A>.
的要求是,这取决于用户点击,则对应的行List<B>的A需要被显示出来.但是,<ui:repeat>不接受在var属性中分配的嵌套列表.因此,我需要做很多无效的解决方法.
我该如何有效地解决这个问题?
给定一个任意嵌套的列表,如何找到列表是否包含空列表?请考虑以下示例:
mylist <- list(list("foo", "bar", "baz", list(list())))
我试过了rapply,但是跳过了列表.虽然我可以使用lapply,但我需要事先知道嵌套的级别.对于本练习,我不需要知道列表的位置(虽然这将是一个奖励),我只需要一种方法来检测是否有一个.
我有一个大文件(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) 我有一个深度嵌套的列表,我想转换为数据框。下面是结构的样子:
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) 文档说fmt
\n\n返回一个字符串,其中列表中的每个元素均已根据
\n$format[第一个参数] 进行格式化,并且每个元素均由$separator[第二个参数] 分隔。
根据该描述,我希望能够调用.fmt列表列表,然后传递一个printf-style 格式字符串,其中%包含内部列表中每个元素的指令。但这是行不通的。
如果您告诉我我对 ^^^^ 的看法是错误的,我会期望它.fmt会自动展平其参数,因此每个参数都会被格式化并由$separator. 但事实并非如此。
相反,运行此代码
\n\nsay (<a b c>, <1 2 3>, <X Y Z>).fmt(\'\xe2\x86\x92%03s|\', "\\n=================\\n");\nRun 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|\nRun Code Online (Sandbox Code Playgroud)\n也就是说,格式字符串应用于内部列表中的每个元素,然后对这些列表进行字符串化(不使用格式字符串;注意 每个|和\xe2\x86\x92字符之间),然后在每个外部列表之间插入分隔符列表之间插入分隔符。
这给我留下了三个问题:
\n据我所知,在大多数情况下,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被认为是正确和预期的?如果是这样,请解释原因.nested-lists ×10
list ×4
python ×4
r ×3
algorithm ×1
arrays ×1
clojure ×1
dataframe ×1
formatting ×1
intersection ×1
jsf ×1
jsf-2 ×1
matrix ×1
nested-loops ×1
printf ×1
python-3.x ×1
raku ×1
rakudo ×1
replace ×1
uirepeat ×1