Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 3.x - Fatal编程技术网

Python 以完全相同的顺序向两个列表添加值

Python 以完全相同的顺序向两个列表添加值,python,python-3.x,Python,Python 3.x,所以,在做了一些web抓取并将数据帧转换为列表之后,我想将一个列表与我自己创建的另一个列表进行比较。但是,如果一个列表没有来自另一个列表的值,我希望它按照与之比较的列表的确切顺序添加 例如,如果我在比较一份零食清单和另一份零食清单 我想确保列表2最终看起来与列表1完全相同。我想做的另一件事是将苹果的价格添加到ListPrices的“Nan”中,因为我没有现有的值,我希望它在一个for/if语句中完成 List1 = ['apples', 'bananas', 'cookies', 'soda']

所以,在做了一些web抓取并将数据帧转换为列表之后,我想将一个列表与我自己创建的另一个列表进行比较。但是,如果一个列表没有来自另一个列表的值,我希望它按照与之比较的列表的确切顺序添加

例如,如果我在比较一份零食清单和另一份零食清单

我想确保列表2最终看起来与列表1完全相同。我想做的另一件事是将苹果的价格添加到ListPrices的“Nan”中,因为我没有现有的值,我希望它在一个for/if语句中完成

List1 = ['apples', 'bananas', 'cookies', 'soda']
List2 = ['apples', 'cookies', 'soda']
ListPrices =  [1, 3, 1]

for i in range(List1):
    if List1[i] != List2[i]:
        List2.insert([i-1], List1[i])
        ListPrices.insert([i-1], Nan)
print(List2)
上面是python脚本,但我似乎陷入了死胡同,不知道如何在不产生错误的情况下完成它。我希望能得到像这样的输出

List2 = ['apples', 'bananas', 'cookies', 'soda']
ListPrices =  [1, Nan, 3, 1]

非常感谢您的任何建议。

您可以将其转换为字典进行简单的查找

d = dict(zip(List2,ListPrices))

[d.get(i,None) for i in List1]

假设
ListPrices
中的价格是一致的,即如果
List1
有两个香蕉,两个香蕉的价格相同,您可以通过
zip
ing
List1
ListPrices
创建一个
dict
,然后在该dict中查找
List2
中项目的价格,或者使用
nan
作为默认值

prices = dict(zip(List2, ListPrices))
# {'apples': 1, 'cookies': 3, 'soda': 1}

List2 = List1 # make same as List1...
ListPrices = [prices.get(x, float("nan")) for x in List1]
# [1, nan, 3, 1]

因此,如果我理解正确,
ListPrices
List2
的价格列表

List1 = ['apples', 'bananas', 'cookies', 'soda']
List2 = ['apples', 'cookies', 'soda']
ListPrices =  [1, 3, 1]
如果是这样,您可以确保使用dict将价格绑定到
List2
的每个项目:

MapPrices = dict(zip(List2, ListPrices))
然后使用该地图获取列表1的价格:

>>> [MapPrices.get(item, float('NaN')) for item in List1]
[1, nan, 3, 1]
*
用于范围内的i(len(List1))
用于范围内的i(List1)
插入(i-1
插入([i-1]