相关疑难解决方法(0)

有没有一种功能性的方法来做到这一点?

def flattenList(toFlatten):
 final=[]
 for el in toFlatten:
  if isinstance(el, list):
   final.extend(flattenList(el))
  else:
   final.append(el)
 return final
Run Code Online (Sandbox Code Playgroud)

当我不知道列表的嵌套程度时,这是我能想到的唯一方法.

python sequences

5
推荐指数
2
解决办法
360
查看次数

在python中展平列表

我有一个这样的列表:

[[(video1,4)], [(video2,5),(video3,8)], [(video1,5)], [(video5, 7), (video6,9)]...]
Run Code Online (Sandbox Code Playgroud)

此列表中的每个项目可能包含单个数据对或元组,我想将此列表更改为

[(video1,4),(video2,5),(video3,8),(video1,5),(video5,7),(video6,9)...]
Run Code Online (Sandbox Code Playgroud)

然后这样做:

for item in list:
    reqs = reqs + item[1]
    b.append(item[0])
c = set(b)
Run Code Online (Sandbox Code Playgroud)

我不知道如何更改列表结构,或者如何根据原始列表进行相同的计算?

python

4
推荐指数
4
解决办法
8648
查看次数

如何在python中将一个列表的列表压缩成单个列表?

我有一个对象列表,其中对象可以是列表或标量.我想要一个只有标量的扁平列表.例如:

L = [35,53,[525,6743],64,63,[743,754,757]]
outputList = [35,53,525,6743,64,63,743,754,757]
Run Code Online (Sandbox Code Playgroud)

PS此问题的答案不适用于异构列表.在Python中展平浅层列表

python list flatten

4
推荐指数
3
解决办法
1630
查看次数

如何使用Python在列表中转换多个列表?

我想在列表中转换多个列表?我正在使用循环,但每个子列表项之间没有逗号.

myList = [['a','b','c','d'],['a','b','c','d']]
myString = ''
for x in myList:
    myString += ",".join(x)
print myString
Run Code Online (Sandbox Code Playgroud)

输出继电器:

a,b,c,da,b,c,d
Run Code Online (Sandbox Code Playgroud)

期望的输出:

a,b,c,d,a,b,c,d
Run Code Online (Sandbox Code Playgroud)

python join nested-lists

4
推荐指数
2
解决办法
694
查看次数

简单的列表理解

我想要一个文件字典:

files = [files for (subdir, dirs, files) in os.walk(rootdir)]
Run Code Online (Sandbox Code Playgroud)

但我知道,

files = [['filename1', 'filename2']] 
Run Code Online (Sandbox Code Playgroud)

当我想要的时候

files = ['filename1', 'filename2']
Run Code Online (Sandbox Code Playgroud)

如何防止循环通过该元组?谢谢!

python list-comprehension

3
推荐指数
1
解决办法
821
查看次数

元组列表中的唯一项列表

我有一个像这样的元组列表:mylist = [(1,2,3),(6,1,1),(7,8,1),(3,4,5)].如果我使用列表理解slist = [item for sublist in mylist for item in sublist],我可以得到slist = [1,2,3,6,1,1,7,8,1,3,4,5].

如果我只需要slist像这样的独特元素,我应该如何修改[1,2,3,6,7,8,4,5]

python tuples list

3
推荐指数
2
解决办法
6339
查看次数

Python 2:在新显式列表定义中插入现有列表

这可能是不可能的,但如果是的话,我写的一些代码会很方便:

ListOne = ['jumps', 'over', 'the']
ListTwo = ['The', 'quick', 'brown', 'fox', ListOne, 'lazy', 'dog!']
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我最终会将ListOne作为ListTwo中的一个列表.

但相反,我想将ListOne扩展为ListTwo,但我不想做以下事情:

ListOne = ['jumps', 'over', 'the']
ListTwo = ['The', 'quick', 'brown', 'fox']
ListTwo.extend(ListOne)
ListTwo.extend(['lazy', 'dog!']
Run Code Online (Sandbox Code Playgroud)

这将有效,但它不像上面的代码那样可读.

这可能吗?

python list

3
推荐指数
1
解决办法
373
查看次数

如何展平列表/嵌套列表列表?

我有这样的python代码:

newlist =[[52, None, None], [129, None, None], [56, None, None], [111, None, None],  
          [22, None, None], [33, None, None], [28, None, None], [52, None, None],  
          [52, None, None], [52, None, None], [129, None, None], [56, None, None],  
          [111, None, None], [22, None, None], [33, None, None], [28, None, None]]
Run Code Online (Sandbox Code Playgroud)

我想要的newlist是:

newlist =[52, None, None,129, None, None,56, None, None,111, None, None,22, 
          None, None,33, None, None,28, None, None,52, None, None,52, None,  
          None,52, None, None,129, None, None,56, None, None, 111, …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

Python中具有不同长度的列表列表中的元素总和

我试图计算列表列表中的元素总和.如果主列表中的列表都具有相同的大小,我可以毫不费力地计算总和,如下所示:

a = [[4], [8], [15]]
total = [sum(i) for i in zip(*a)]
Run Code Online (Sandbox Code Playgroud)

结果:

total = [27]     #(4 + 8 + 15) = 27, GOOD!!!
Run Code Online (Sandbox Code Playgroud)

但是我可能在主列表中有一个不同大小的列表,例如:

a = [[3], [4, 6], [10]]
Run Code Online (Sandbox Code Playgroud)

预期结果:

total = [17, 19]     #(3 + 4 + 10) = 17, (3 + 6 + 10) = 19
Run Code Online (Sandbox Code Playgroud)

我被困在这里,显然我的相同大小的列表的解决方案不起作用.以我定义的方式获得结果的最佳方法是什么?我的直觉是找出具有最大长度的列表,然后通过添加零将其他列表扩展到该长度,最后分别计算总和.这听起来像一个丑陋的解决方案,我想知道是否有一个快速,更优雅的方式来做到这一点.

谢谢!

编辑:应该更好地解释它.我也有点困惑......以下是更好的例子:

列表中列表中的元素数量a永远不会超过2个.示例:

a = [[1], [10], [5]] #Expected result: [16] (1+10+5)

a = [[1, 10], [3], [4]] #Expected result: [8, 17] (1+3+4, 10+3+4)

a = …
Run Code Online (Sandbox Code Playgroud)

python list

3
推荐指数
1
解决办法
179
查看次数

从元组更改为列表,反之亦然

我怎么能改变[('a', 1), ('c', 3), ('b', 2)],['a',1,'c',3,'b',2]反之亦然?谢谢

python list

2
推荐指数
1
解决办法
801
查看次数