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