相关疑难解决方法(0)

2149
推荐指数
17
解决办法
65万
查看次数

星级算子是什么意思?

*运算符在Python 中的含义是什么,例如在代码中zip(*x)f(**k)

  1. 如何在解释器内部处理?
  2. 它会影响性能吗?是快还是慢?
  3. 什么时候有用,什么时候不用?
  4. 它应该用于功能声明还是通话中?

python syntax parameter-passing argument-unpacking iterable-unpacking

559
推荐指数
5
解决办法
17万
查看次数

加入python中的列表列表

在python中将列表列表加入单个列表(或迭代器)的简短语法是什么?

例如,我有一个如下列表,我想迭代a,b和c.

x = [["a","b"], ["c"]]
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的是如下.

result = []
[ result.extend(el) for el in x] 

for el in result:
  print el
Run Code Online (Sandbox Code Playgroud)

python

284
推荐指数
10
解决办法
31万
查看次数

python*运算符的专有名称?

运营商的正确名称是什么*,如function(*args)?解压缩,解压缩,其他什么?

python operators splat

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

如何使用可选参数创建Python函数?

我有一个Python函数,它需要几个参数.在某些情况下,可以省略其中一些参数.

def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
    #code
Run Code Online (Sandbox Code Playgroud)

这些参数d通过h是字符串,每个都有不同的含义.重要的是我可以选择以任意组合传递哪些可选参数.例如,(a, b, C, d, e)(a, b, C, g, h),或(a, b, C, d, e, f,或全部(这些是我的选择).

如果我可以重载函数会很棒 - 但我读到Python不支持重载.我试图在列表中插入一些必需的int参数 - 并得到一个参数不匹配错误.

现在我发送空字符串代替前几个缺少的参数作为占位符.我希望能够使用实际值调用函数.

有没有办法做到这一点?我可以传递一个列表而不是参数列表吗?

现在使用ctypes的原型看起来像:

_fdll.some_function.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_char_p, c_char_p, c_char_p, c_char_p]
Run Code Online (Sandbox Code Playgroud)

python arguments function optional-arguments

162
推荐指数
5
解决办法
34万
查看次数

将列表/元组对打包成两个列表/元组

可能重复:
Python中的转置/解压缩功能

我有一个如下所示的列表:

list = (('1','a'),('2','b'),('3','c'),('4','d'))
Run Code Online (Sandbox Code Playgroud)

我想将列表分成2个列表.

list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

list1 = []
list2 = []
for i in list:
   list1.append(i[0])
   list2.append(i[1])
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更优雅的解决方案.

python tuples list

152
推荐指数
2
解决办法
11万
查看次数

如何将itertools.product应用于列表列表的元素?

我有一个数组列表,我想获得数组中元素的笛卡尔积.

我将用一个例子来说明这个更具体......

itertools.product似乎可以做到这一点,但我陷入了一些细节.

arrays = [(-1,+1), (-2,+2), (-3,+3)];
Run Code Online (Sandbox Code Playgroud)

如果我做

cp = list(itertools.product(arrays));
Run Code Online (Sandbox Code Playgroud)

我明白了

cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Run Code Online (Sandbox Code Playgroud)

但我想得到的是

cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的东西:

cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Run Code Online (Sandbox Code Playgroud)

他们都让我CP0代替CP1.

有任何想法吗?

提前致谢.

python cartesian-product python-itertools

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

Python 3:用于解压缩列表的已加星标表达式

我的例子是:

>>> def f(a, b, c, d): print(a, b, c, d, sep = '&')
>>> f(1,2,3,4)
1&2&3&4
>>> f(*[1, 2, 3, 4])
1&2&3&4
Run Code Online (Sandbox Code Playgroud)

要彻底了解它,我想查阅有关'*'的文档.

你能建议我去哪儿看吗?

python-3.x

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

用于列表时星型运算符的用途

在此示例中,明星运算符对输入参数列表的作用是什么?

def main(name, data_dir='.'):
    print 'name', type(name)

if __name__ == '__main__':
    main(*sys.argv)
Run Code Online (Sandbox Code Playgroud)

具体来说,如果我使用星号运算符运行程序,它会打印:

name <type 'str'>
Run Code Online (Sandbox Code Playgroud)

如果在没有星形的情况下运行main(sys.argv)则打印

name <type 'list'>
Run Code Online (Sandbox Code Playgroud)

python

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

N的总和列出了元素方式的python

有没有一种简单的方法来计算python中N个列表的元素总和?我知道如果我们定义了 n个列表(调用第i个列表c_i),我们可以这样做:

z = [sum(x) for x in zip(c_1, c_2, ...)]
Run Code Online (Sandbox Code Playgroud)

例如:

c1 = [1,2]
c2 = [3,4]
c3 = [5,6]
z  = [sum(x) for x in zip(c1,c2,c3)]
Run Code Online (Sandbox Code Playgroud)

这里 z = [9, 12]

但是如果我们没有c_i定义并且c_1...c_n在列表中有C什么呢?

有没有类似的方法找到z,如果我们只是有C

我希望这很清楚.

已解决:我想知道*运营商的全部内容......谢谢!

python sum list

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