相关疑难解决方法(0)

如何从列表列表中制作一个平面列表?

我想知道是否有一条快捷方式可以在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 list flatten multidimensional-array

2950
推荐指数
29
解决办法
184万
查看次数

在Python中交错多个相同长度的列表

在Python中,是否有一种交错两个相同长度列表的好方法?

说我给[1,2,3][10,20,30].我想把它们变成[1,10,2,20,3,30].

python list

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

izip不能在Python 3.x中工作

我试图像这样导入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)

但我没有运气.仍然会遇到错误.

python python-itertools python-2.7 python-3.x izip

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

在Python中合并/添加列表

我很确定应该有更多的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阵列中的所有"线"是否具有相同的长度,可以相互添加等等.有什么更好的方法呢?

python list

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

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

Python - 使用相同长度的现有列表创建新列表?

"给定列表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和范围.

python

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

如何连接两个列表以使元素处于替代位置?

例如:

 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 新手,我的学校没有教太多。谢谢你。

python function list elements

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

如何使用线性插值扩展数组

我想要的是将长度为m的数组扩展为length的数组n (n>m),并线性插入缺失值。

例如,我想这个阵列延伸[1,5,1,7]至长度的阵列7,结果应该是[1,3,5,3,1,5,7],其中粗体数字从线性内插的结果。

有没有简单的方法可以在Python中做到这一点?提前致谢。

python arrays interpolation

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

如何在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 的第二个元素,依此类推。

python list concatenation python-3.x turn-by-turn

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

合并两个列表遵循某些模式

我有两个清单:

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

0
推荐指数
1
解决办法
110
查看次数

如何在python中将两个列表交叉在一起?

如何在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 list

-1
推荐指数
1
解决办法
165
查看次数