相关疑难解决方法(0)

列表和元组之间有什么区别?

有什么不同?

元组/列表的优点/缺点是什么?

python tuples list

975
推荐指数
14
解决办法
40万
查看次数

转置/解压缩功能(zip的反转)?

我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目.

例如:

original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

是否有内置函数可以做到这一点?

python transpose list matrix

480
推荐指数
6
解决办法
15万
查看次数

转置列表清单

让我们来:

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果是

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)

并不是

r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)

非常感激

python transpose list

200
推荐指数
6
解决办法
18万
查看次数

Python函数中的最大参数数是多少?

Python函数最多可以包含256个参数,这是一些常见的知识.我很想知道的是,这个限制适用于*args以及**kwargs何时以下列方式展开:

items = [1,2,3,4,5,6]

def do_something(*items):
    pass
Run Code Online (Sandbox Code Playgroud)

我问,因为,假设有可能出现大于256个项目的列表作为一组*argsor 展开的情况**kwargs.

python language-features arguments function limit

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

按列表A排序列表B?

假设我有一些带有k个元素的列表A,以及带有k个元素的列表B. 我想对列表A进行排序,但我也希望以相同的方式置换列表B.

例如

A = [2,3,1,4]
B = [5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

排序后A:

A = [1,2,3,4]
B = [7,5,6,8]
Run Code Online (Sandbox Code Playgroud)

python list

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

我可以在一行中组合 2 个列表推导式吗?

这是我的 Python 代码的一部分:

pstat1 = [plotvex(alpha,beta,j)[0] for j in range(5)]
ptset1 = [plotvex(alpha,beta,j)[1] for j in range(5)]
Run Code Online (Sandbox Code Playgroud)

whereplotvex是一个返回 2 个项目的函数。我想生成两个列表pstat1ptset1使用列表理解,但我想知道有没有一种方法不需要两次调用该函数?谢谢:)

python list-comprehension

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

返回多个列表的Python列表推导

我不知道Python是否有可能,这就是我在这里问它的原因。

我有一个返回元组的Python函数:

def my_func(i):
    return i * 2, 'a' * i
Run Code Online (Sandbox Code Playgroud)

这只是一个给定数字的哑函数k,它k * 2按原样返回,另一个字符串是字母“ a”的连接k时间。

现在,我想形成两个列表,使用调用函数i = 0...9,我想创建一个包含所有第一个值的列表,并创建一个包含其余所有值的列表。

我目前的知识是:

选项1:两次运行相同的列表理解,但效率不高:

first_vals = [my_func(i)[0] for i in range(10)]
second_vals = [my_func(i)[1] for i in range(10)]
Run Code Online (Sandbox Code Playgroud)

选项2:避免列表理解:

first_vals = []
second_vals = []
for i in range(10):
    f, s = my_func(i)
    first_vals.append(f)
    second_vals.append(s)
Run Code Online (Sandbox Code Playgroud)

选项3:使用列表推导获取元组列表,然后使用另外两个列表推导复制值。它比选项1更好,因为这里my_func()每个选项仅被调用一次i

ret = [my_func(i) for i in range(10)]
first_vals = …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

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