Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 遍历列表,划分值,存储在新列表中_Python_Python 2.7_List - Fatal编程技术网

Python 遍历列表,划分值,存储在新列表中

Python 遍历列表,划分值,存储在新列表中,python,python-2.7,list,Python,Python 2.7,List,在代码中,我有一系列列表,每个列表包含相同数量的条目。我现在要做的是遍历列表并将一个列表索引除以另一个 threads = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] dsk_indpt_PI = [99, 197, 295, 387, 391, 406, 407, 416, 424, 426, 425, 439] avg_val = [] for x in threads: result = dsk_indpt_PI[x]/threads[x]

在代码中,我有一系列列表,每个列表包含相同数量的条目。我现在要做的是遍历列表并将一个列表索引除以另一个

threads = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
dsk_indpt_PI = [99, 197, 295, 387, 391, 406, 407, 416, 424, 426, 425, 439]

avg_val = []
for x in threads:
    result = dsk_indpt_PI[x]/threads[x]
    avg_val.append(result[x])

我不确定上面的方法是否有效,以前的方法遇到了无法区分int类型和list类型的问题。上面的例子会更好吗?如果没有,应进行哪些更改以使其按预期运行?谢谢。

更好的方法是使用
zip

您可以尝试以下方法:

avg_vals = []
for thread, dsk_ind in zip(threads, dsk_indpt_PI):
    avg_vals.append(dsk_ind / thread)

zip
获取两个(或更多)iterable,并将它们组合成一个长度等于最短iterable的元组列表。

更好的方法是使用
zip

您可以尝试以下方法:

avg_vals = []
for thread, dsk_ind in zip(threads, dsk_indpt_PI):
    avg_vals.append(dsk_ind / thread)

zip
获取两个(或多个)可数,并将它们组合成一个长度等于最短可数的元组列表。

如果对列表进行迭代,则获得列表的值,而不是索引

您可以使用
范围(len(..)
来获取索引。此外,结果是
result
,而不是
result[x]
,以将其存储到
avg_val

avg_val = []
for x in range(len(threads)):
    result = dsk_indpt_PI[x]/threads[x]
    avg_val.append(result)
我们可以在列表理解中使用这个:

avg_val = []
for a,b in zip(dsk_indpt_PI, threads):
    result = a/b
    avg_val.append(resul)
avg_val = [a/b for a,b in zip(dsk_indpt_PI, threads)]

列表理解是通过在方括号之间编写生成器语法,以更优雅的方式创建列表的一种方法。

如果对列表进行迭代,则获得列表的值,而不是索引

您可以使用
范围(len(..)
来获取索引。此外,结果是
result
,而不是
result[x]
,以将其存储到
avg_val

avg_val = []
for x in range(len(threads)):
    result = dsk_indpt_PI[x]/threads[x]
    avg_val.append(result)
我们可以在列表理解中使用这个:

avg_val = []
for a,b in zip(dsk_indpt_PI, threads):
    result = a/b
    avg_val.append(resul)
avg_val = [a/b for a,b in zip(dsk_indpt_PI, threads)]

列表理解是一种通过在方括号之间编写生成器语法以更优雅的方式创建列表的方法。

如果使用常规的
for
循环对列表进行迭代,则将获得值,而不是索引。如果您想要索引,可以使用
来表示范围内的i(len(myList)):
这将给出列表中的每个索引
i
。或者,如果同时需要索引和值,则可以使用
作为索引,枚举(myList)中的值。

如果使用常规
for
循环遍历列表,则将获得值,而不是索引。如果您想要索引,可以使用
来表示范围内的i(len(myList)):
这将给出列表中的每个索引
i
。或者,如果同时需要索引和值,可以使用
作为索引,枚举中的值(myList)

threads = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
dsk_indpt_PI = [99, 197, 295, 387, 391, 406, 407, 416, 424, 426, 425, 439]

avg_val = []
for x in range(len(threads)):
    result = dsk_indpt_PI[x]/threads[x]
    avg_val.append(result)

print(avg_val)
对象不可编辑,并且不能使用结果[x],因为它不是列表,并且每次都会被重置

对象不可编辑,并且不能使用结果[x],因为它不是列表,并且每次都会被重置

使用pythonic方式,单线解决方案:

输出:

[99.0, 98.5, 98.33333333333333, 96.75, 78.2, 67.66666666666667, 58.142857142857146, 52.0, 47.111111111111114, 42.6, 38.63636363636363, 36.583333333333336]
以上列表理解与以下内容相同:

divide=[]
for item in zip(threads,dsk_indpt_PI):
    divide.append(item[1]/item[0])

print(divide)
使用pythonic方式,单线解决方案:

输出:

[99.0, 98.5, 98.33333333333333, 96.75, 78.2, 67.66666666666667, 58.142857142857146, 52.0, 47.111111111111114, 42.6, 38.63636363636363, 36.583333333333336]
以上列表理解与以下内容相同:

divide=[]
for item in zip(threads,dsk_indpt_PI):
    divide.append(item[1]/item[0])

print(divide)

如果对列表进行迭代,则获得的是值,而不是索引。您可能希望在
for
循环中使用
xrange(len(threads))
来获得要查找的结果。因此,我需要迭代列表中的索引,而不是列表本身。如果对列表进行迭代,则获得值,不是索引。您可能想在
for
循环中使用
xrange(len(threads))
来查找您要查找的结果。因此,我需要遍历列表中的索引,而不是列表本身?