相关疑难解决方法(0)

使用未知数量的参数调用python函数

我正在写一个小脚本,我在其中调用itertools.product:

for p in  product(list1,list2,list3):
            self.createFile(p)
Run Code Online (Sandbox Code Playgroud)

有没有办法让我在不事先知道要包含多少列表的情况下调用此函数?

谢谢

python arguments

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

Python如何使用map()将列表拆分为子列表?

我有这个函数将迭代按长度,填充值和填充方向分成子列表:

def split(v,size,fill=0,direction='right'):
    if size == 0: return []
    lenv = len(v)
    count = lenv/size
    remainder = lenv%size
    result = []
    for i in range(0,lenv-remainder,size):
            result.append(v[i:i+size])
    if remainder > 0:
            if direction == 'right':
                    result.append(v[count*size:] + [fill] * (size-remainder))
            else:
                    result.append([fill] * (size-remainder) + v[count*size:])
    return result
Run Code Online (Sandbox Code Playgroud)

因为我喜欢一个衬垫我想用地图重写它,但我不明白怎么做.到目前为止我有这个:

def j1(a,b): 
        return a + b 

def j2(a,b): 
        return b 

def split2(v,size,fill=0): 
        map(j1,(x for x in map(j2,v))) 
Run Code Online (Sandbox Code Playgroud)

我不知道.任何提示?

python reduce

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

如何在Python中解压缩列表或元组?

是否可以解压缩列表或元组,使得值可以用作函数参数?即,我怎样才能使第二条线工作?

f(1,2,3)
f(???([1,2,3]))
Run Code Online (Sandbox Code Playgroud)

我现在正在手工做这件事,比如:

tmp1, tmp2, tmp3 = [1,2,3]
f(tmp1,tmp2,tmp3)
Run Code Online (Sandbox Code Playgroud)

context:我没有能力修改f(),但这是代码生成器的一部分,所以时髦的解决方案不是问题.

python tuples list

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

如何将集合列表作为单独的参数传递给函数?

我已经创建了一个我想要传递给set.intersection()的集合列表

例如:

List_of_Sets = [{1,2,3},{3,4,5},{5,6,7}]
set.intersection(List_of_Sets)
Run Code Online (Sandbox Code Playgroud)

结果:

TypeError: descriptor 'intersection' requires a 'set' object but received a 'list'
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{3,5}
Run Code Online (Sandbox Code Playgroud)

如何将列表中的每个集合作为单独的参数传递到set.intersection()?

python function list set

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

使用python中的列表顺时针旋转矩阵90度

我正在尝试在 python 中顺时针旋转 3*3 矩阵 90 度。我已经确定 [ i ][ j ] 处的元素转到 [ j ][ new_i ]。这里 new_i 依赖于前一个 i,所以我为它做了一个叫做循环减法的函数。

如果 i 是 0 那么 new_i 是 2

如果 i 是 1 那么 new_i 是 1

如果 i 是 2 那么 new_i 是 0

执行后,它给了我意想不到的结果。

我已经打印了每次迭代中发生的所有事情。我无法弄清楚某些元素是如何被不同的元素替换的。

'''
1 2 3                       7 4 1
4 5 6  rotate 90 degrees    8 5 2
7 8 9                       9 6 3


'''

def circular_subtraction(i):
    new_i = i 
    if(i==0):
        new_i = 2
    elif(i==1): …
Run Code Online (Sandbox Code Playgroud)

python list matrix

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

在列表中解压缩迭代器的Python方法

我试图找出在列表中解包迭代器的pythonic方法是什么。

例如:

my_iterator = zip([1, 2, 3, 4], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

我提供了以下几种在列表中解压缩迭代器的方法:

1)

my_list = [*my_iterator]
Run Code Online (Sandbox Code Playgroud)

2)

my_list = [e for e in my_iterator]
Run Code Online (Sandbox Code Playgroud)

3)

my_list = list(my_iterator)
Run Code Online (Sandbox Code Playgroud)

No 1)是我最喜欢的方法,因为它减少了代码,但是我想知道这是否也是pythonic方法。或者,也许除了Python 3之外,还有另一种方法可以实现这一目标?

python list unpack python-3.x iterable-unpacking

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

将列表转换为Python 3列表

我有一个由汽车详细信息组成的列表文件.

例如

1000001 Volvo v8
1000002 Mazda 2.0
Run Code Online (Sandbox Code Playgroud)

python text list text-files python-3.x

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

在函数中返回2个值

简而言之,我正在尝试实现以下内容:

def function_one(value):
...
return a, b

def function_two(a, b):
...
Run Code Online (Sandbox Code Playgroud)

当我尝试

function_two(function_one(value))
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:"function_two()缺少1个必需的位置参数:'b'"

有没有办法使这项工作按预期进行?谢谢!

python

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

Itertools 多个列表的组合,每个列表选择 n 个元素

我需要组合一个列表列表,例如在每个列表中选择 n 个元素

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

所以我的结果可能是这样的:

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

有什么干净的方法可以做到吗?或者我应该将列表分成更小的大小并使用 for 循环来调用 itertools?

python combinations python-itertools

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

如何将函数zip应用于n-list

该示例将函数zip应用于两个alist是:

x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
#show
list(zipped)
[(1, 4), (2, 5), (3, 6)]
Run Code Online (Sandbox Code Playgroud)

但现在如果我有一些喜欢:

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

如何应用函数zip来显示如下:

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

python arrays list

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