我试图实现以下功能,但无法获得我想要的功能。比较两个列表中的元素并返回第三个列表元素的差异
l1 = ['a','b','c']
l1_values = [1,2,3]
l1_new = [a,c]
比较L1和l1_new名单和返回的 l1_values
结果相对位置的元素:
l1_values = [1,3]
这些清单很长,所以循环通过它们是必须找到差异和不同元素可以在列表中的任何位置
我试图实现以下功能,但无法获得我想要的功能。比较两个列表中的元素并返回第三个列表元素的差异
l1 = ['a','b','c']
l1_values = [1,2,3]
l1_new = [a,c]
比较L1和l1_new名单和返回的 l1_values
结果相对位置的元素:
l1_values = [1,3]
这些清单很长,所以循环通过它们是必须找到差异和不同元素可以在列表中的任何位置
如果l1
中的所有元素都是唯一的,则可以创建一个dicti onary从l1
和l1_values
,然后查找值,同时通过l1_new
循环:
my_dict = dict(zip(l1, l1_values))
[my_dict[k] for k in l1_new]
# [1, 3]
l1 = ['a','b','c']
l1_values = [1,2,3]
l1_new = ['a','c']
l1_values = [i+1 for i,v in enumerate(l1) if v in l1_new]
print l1_values
输出:
[1, 3]
单行溶液,假设l1_values
可以是从给定的顺序不同:
[l1_values[x] for x, val in enumerate(l1) if val in l1_new]
Yo u可以使用一个简单的 '关于':
list1 = {'a': [print, 1], 'b': [print, 2], 'c' : [print, 3]}
list2 = ['a', 'b']
for data in list2:
if data in list1:
list1[data][0](list1[data][1])
输出(1):
1
2
又如:
list1 = {'hi': [print, 'hi :)'], 'How are you?': [print, 'iam fine.'],
'what is your name?': [print, 'my name is emma.']}
list2 = ['hi', 'what is your name?']
for data in list2:
if data in list1:
list1[data][0](list1[data][1])
输出(2):
hi :)
my name is emma.
是'l1'中的所有元素都是唯一的? – Psidom
你有试过什么吗?有没有你写的代码? – user1211
在'l1_new'中,是'a'和''c''变量,是写成的,还是你的意思是它们是字符串''a''和''c'',就像'l1'一样? –