相关疑难解决方法(0)

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

将元组扩展为参数

有没有办法将Python元组扩展为函数 - 作为实际参数?

例如,这里expand()有魔力:

some_tuple = (1, "foo", "bar")

def myfun(number, str1, str2):
    return (number * 2, str1 + str2, str2 + str1)

myfun(expand(some_tuple)) # (2, "foobar", "barfoo")
Run Code Online (Sandbox Code Playgroud)

我知道可以定义myfunmyfun((a, b, c)),但当然可能有遗留代码.谢谢

python tuples parameter-passing

375
推荐指数
5
解决办法
20万
查看次数

调用函数时将列表转换为*args

在Python中,如何将列表转换为*args

我需要知道因为功能

scikits.timeseries.lib.reportlib.Report.__init__(*args)
Run Code Online (Sandbox Code Playgroud)

想要传递几个time_series对象*args,而我有一个时间序列对象列表.

python arguments list function-call

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

什么是解包元组的pythonic方法?

这很难看.什么是Pythonic方式呢?

import datetime

t= (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
Run Code Online (Sandbox Code Playgroud)

python tuples

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

如何将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万
查看次数

打印列表的制表符分隔值

这是我目前的代码:

print(list[0], list[1], list[2], list[3], list[4], sep = '\t')
Run Code Online (Sandbox Code Playgroud)

我想写得更好.但

print('\t'.join(list))
Run Code Online (Sandbox Code Playgroud)

不会起作用,因为列表元素可能是数字,其他列表等,所以join会抱怨.

python printing python-3.x

28
推荐指数
3
解决办法
6万
查看次数

如何使用matplotlib在python中绘制矢量

我正在学习线性代数课程,我希望可视化动作中的向量,例如向量加法,法向量等.

例如:

V = np.array([[1,1],[-2,2],[4,-7]])
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想绘制3个向量V1 = (1,1), M2 = (-2,2), M3 = (4,-7).

然后我应该能够添加V1,V2来绘制一个新的矢量V12(在一个图中一起).

当我使用下面的代码时,情节不符合预期

import numpy as np
import matplotlib.pyplot as plt
M = np.array([[1,1],[-2,2],[4,-7]])

print("vector:1")
print(M[0,:])
# print("vector:2")
# print(M[1,:])
rows,cols = M.T.shape
print(cols)

for i,l in enumerate(range(0,cols)):
    print("Iteration: {}-{}".format(i,l))
    print("vector:{}".format(i))
    print(M[i,:])
    v1 = [0,0],[M[i,0],M[i,1]]
    # v1 = [M[i,0]],[M[i,1]]
    print(v1)
    plt.figure(i)
    plt.plot(v1)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,谢谢你提前.

python numpy vector matplotlib python-2.7

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

解包函数参数

如果一个函数需要n个参数,并且有另一个函数返回一个包含n个项目的序列(或者我有一个包含n个项目的序列),有没有办法"映射"这两个函数(或者make第一个函数采用n个项目的序列作为输入和返回结果)我不希望(也许在某些情况下不能)自己编辑函数并更改其参数参数和返回值类型.

即)

def func1(x, y, z):
    return x+y+z

def func2(w):
    return [i for i in range(w,w+3)]
Run Code Online (Sandbox Code Playgroud)

func1(func2( ... ))在这种情况下不能.

python function

13
推荐指数
2
解决办法
8570
查看次数

Python 3 .format 和 List

我希望从我的 Python 程序中内置的列表中打印出结果。

我将获取列表中值的结果并将它们打印出来,以制表符分隔。

我有一个名为“a”的列表,我将只选择元素来生成最终表格。

但是当我使用 .format 方法时,我不得不四次调用列表。

a = [1,2,3,4]
print('a{[0]}\ta{[3]}\ta{[1]}\ta{[2]}'.format(a, a, a, a))
Run Code Online (Sandbox Code Playgroud)

输出:

a1  a4  a2  a3
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法告诉格式命令每次使用列表“a”?

python-3.x

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

将列表传递给python中具有可变数量args的函数

我必须编写一个简单的函数,它接受可变数量的参数并打印总和,就像(忽略错误检查)一样简单:

def add(*params):
    sum = 0
    for num in params:
        sum += num
    print(sum)
Run Code Online (Sandbox Code Playgroud)

我必须调用脚本并为其提供参数,然后将在函数中使用这些参数。我得到这样的论点:

import sys
sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)

但这是一个数组并将其发送到add仅意味着传递 1 个列表参数。我是 Python 新手,所以也许所有这些听起来都很愚蠢,但是有没有办法将这些参数正确地传递给函数?

python

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