我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.
我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.
码
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud) 在Python中,是否有一种交错两个相同长度列表的好方法?
说我给[1,2,3]和[10,20,30].我想把它们变成[1,10,2,20,3,30].
我试图像这样导入izip模块:
from itertools import izip
Run Code Online (Sandbox Code Playgroud)
然而,在最近从Python 2.7转换到3之后 - 它似乎不起作用.
我想写一个csv文件:
writer.writerows(izip(variable1,2))
Run Code Online (Sandbox Code Playgroud)
但我没有运气.仍然会遇到错误.
我很确定应该有更多的Pythonic方法 - 但是我想不出一个:如何将二维列表合并到一维列表中?类似于zip/map但有两个以上的迭代器.
示例 - 我有以下列表:
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
我希望有
result = [12, 15, 18] # [1+4+7, 2+5+8, 3+6+9]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我想出的是:
def add_list(array):
number_items = len(array[0])
result = [0] * number_items
for index in range(number_items):
for line in array:
result[index] += line[index]
return result
Run Code Online (Sandbox Code Playgroud)
但对我来说,这看起来并不是非常优雅/ Pythonic.除了不检查2D阵列中的所有"线"是否具有相同的长度,可以相互添加等等.有什么更好的方法呢?
我有
a = [1, 2]
b = ['a', 'b']
Run Code Online (Sandbox Code Playgroud)
我想要
c = [1, 'a', 2, 'b']
Run Code Online (Sandbox Code Playgroud) "给定列表list1和list2具有相同的长度,创建一个新列表,其中包含list1的第一个元素,后跟list2的第一个元素,后跟list1的第二个元素,后跟list2的第二个元素,以及等等(换句话说,新列表应该由list1和list2的交替元素组成).例如,如果list1包含[1,2,3]并且list2包含[4,5,6],那么新列表应该包含[1,4,2,5,3,6].将新列表与变量list3相关联."
list1 = []
list2 = []
list3 = []
for i in range(len(list3)):
list3.append(list1)
list3.append(list2)
Run Code Online (Sandbox Code Playgroud)
我很确定这是错误的.我应该改进什么?顺便说一句,我认为这必须包括len和范围.
例如:
a=[1,2,3,4,5,6]
b=[7,8,9,10,11,12]
Run Code Online (Sandbox Code Playgroud)
然后结果:
c=[1,7,2,8,3,9,4,10,5,11,6,12]
Run Code Online (Sandbox Code Playgroud)
你如何连接两个列表,使元素处于不同的位置?
我试图将它们链接到一个新列表并重新排列,但它没有出现。如果你能告诉我很长的路(不要过多使用内置函数),那就太好了。我是 python 新手,我的学校没有教太多。谢谢你。
我想要的是将长度为m的数组扩展为length的数组n (n>m),并线性插入缺失值。
例如,我想这个阵列延伸[1,5,1,7]至长度的阵列7,结果应该是[1,3,5,3,1,5,7],其中粗体数字从线性内插的结果。
有没有简单的方法可以在Python中做到这一点?提前致谢。
我有这个清单:
a = ["1 Monday","1 Wednesday","1 Friday"]
b = ["2 Tuesday","2 Thursday","2 Saturday"]
Run Code Online (Sandbox Code Playgroud)
我想将这些结合起来:
c = ["1 Monday", "2 Tuesday", "1 Wednesday", "2 Thursday", "1 Friday", "2 Saturday"]
Run Code Online (Sandbox Code Playgroud)
我想轮流做这个。因此,附加 a 的第一个元素和 b 的第一个元素,然后附加 a 的第二个元素和 b 的第二个元素,依此类推。
我有两个清单:
a = ['a', 'b', 'c', 'd']
b = ['e', 'f', 'g', 'h']
Run Code Online (Sandbox Code Playgroud)
我想合并到一个包含元素nr的列表.列表a中的第1个作为第一个元素,列表b的元素nr.1作为第二个元素,元素nr.列表中的2个作为第三个元素,依此类推,如下所示:
c = ['a', 'e', 'b', 'f', 'c', 'g', 'd', 'h']
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么,可能不使用循环?
如何在python中将两个列表交叉在一起?例:
list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
预期结果:
combined_list = [1, 4, 2, 5, 3, 6]
Run Code Online (Sandbox Code Playgroud) python ×11
list ×6
python-3.x ×2
arrays ×1
elements ×1
flatten ×1
function ×1
izip ×1
python-2.7 ×1
turn-by-turn ×1