Python中的一个函数,用于迭代要在表达式中使用的并发列表
我有四个单独的整数列表,需要在等式中同时使用:Python中的一个函数,用于迭代要在表达式中使用的并发列表,python,list,iteration,Python,List,Iteration,我有四个单独的整数列表,需要在等式中同时使用: h = [160, 193, 162, 17, 0] d = [32, 1, 34, 35, 4] t = [1, 2, 3, 4, 5] r = [2, 5, 1, 3, 4] s = h - (d + t + r) 我试图创建一个函数,我可以将每个单独的列表作为参数传递给它,以便在函数中使用。我希望能够获取每个列表上每个连续索引的值,然后在等式中的正确位置使用它们。然后,我将在每个索引处取s的值,并填充一个新列表 例如,索引[0]处的方程式
h = [160, 193, 162, 17, 0]
d = [32, 1, 34, 35, 4]
t = [1, 2, 3, 4, 5]
r = [2, 5, 1, 3, 4]
s = h - (d + t + r)
我试图创建一个函数,我可以将每个单独的列表作为参数传递给它,以便在函数中使用。我希望能够获取每个列表上每个连续索引的值,然后在等式中的正确位置使用它们。然后,我将在每个索引处取s的值,并填充一个新列表
例如,索引[0]处的方程式应为:
s = 160 - (32 + 1 + 2)
如何从列表中获取每个整数值?我尝试过使用枚举函数,也读过*函数,但我不确定我是否应该解包列表-我是否应该用for循环遍历它们
def getSingles(h, d, r, t)
singles = []
for n, val in enumerate(h):
hit = val
for n, val in enumerate(d):
double = val
for n, val in enumerate(t):
triple = val
for n, val in enumerate(r):
run = val
我在这里基本上很差劲——这可能吗?谢谢大家! 你可以把它们放在一起。像这样的方法应该会奏效:
>>> H = [160, 193, 162, 17, 0]
>>> D = [32, 1, 34, 35, 4]
>>> T = [1, 2, 3, 4, 5]
>>> R = [2, 5, 1, 3, 4]
>>>
>>> for h, d, t, r in zip(H, D, T, R):
... s = h - (d + t + r)
... print(s)
...
125
185
124
-25
-13
请注意,如果您使用的是Python 2.x,并且使用的是非常大的列表,则可能需要使用。您可以使用
zip
函数和map
中的lambda:
>>> map(lambda x: x[0] - (x[1] + x[2] + x[3]),zip(h,d,t,r))
[125, 185, 124, -25, -13]
A使这变得容易:
>>> import pandas as pd
>>> h = pd.Series([160, 193, 162, 17, 0])
>>> d = pd.Series([32, 1, 34, 35, 4])
>>> t = pd.Series([1, 2, 3, 4, 5])
>>> r = pd.Series([2, 5, 1, 3, 4])
>>> s = h - (d + t + r)
>>> s
0 125
1 185
2 124
3 -25
4 -13
dtype: int64
如果CSV文件中有h、d、t、r数据,则可以使用
pandas.read\u CSV()
将其读取到pandas数据帧中。数据帧就像一个系列数组,可以以类似的方式计算新的列。@simonzack你是来troll的吗?现在是2014年,python 3已经发布了足够长的时间了。@simonzack除了世界上大多数人仍在使用2.xBut FWIW外,我更新了2.x和3.x的答案。我不是在指导他们。我假设他们使用的是2.x,通常情况就是这样。我实际上使用的是Python3.x,但我很高兴知道这两个版本都适用。