一个 list1 ['苹果','香蕉','梨'] 另一个 list2 是元组[('苹果','属性','10'),('芒果','属性','3','黄色'),...]
想通过 list1 的元素来查找 list2 中符合的元组,并按照顺序放到一个新的 list3 中,如果没有找到的话 需要提示
list3=[]
for x in list1:
for i in range(len(list2)):
if x == list2[i][0]:
list3.append(list2[i])
break
但是如何来判断 没有找到的话 提示呢
1
yangsi 2019-01-18 16:59:00 +08:00 via iPhone
[t for t in list2 if t[0] in list1] 这样? list1 如果太长先转成集合
|
2
SeaRecluse 2019-01-18 17:03:29 +08:00
```py3
list_1 = ["a","b","c"] list_2 = [("b","b_1","b_2"),("a","a_1")] list_2_all_enum = [] list_3 = [] for per_tuple in list_2: list_2_all_enum.append(per_tuple[0]) for per_enum in list_1: try: list_3.append(list_2[list_2_all_enum.index(per_enum)]) except: print("None") print(list_3) ``` |
3
u2gign OP |
4
dashboard 2019-01-18 17:09:37 +08:00 2
for else 了解一下
|
6
rocksolid 2019-01-18 17:13:04 +08:00
要么就像楼上说的 for 外面加个 else,找不到的肯定没有 break 会进 else
|
7
rabbbit 2019-01-18 17:14:12 +08:00
...list3=[]
......for x in list1: .........flag = False <-- .........for i in range(len(list2)): ............ if x == list2[i][0]: ..................flag = True <-- ..................list3.append(list2[i]) ..................break .........if flag == False: <-- ............print(x) <-- |
8
zyj321321321 2019-01-18 17:15:01 +08:00
不知道怎么贴代码
list3=[] for x in list1: for i in range(len(list2)): if x == list2[i][0]: list3.append(list2[i]) break else: print("查不到"+x) 我网上找了一下,竟然发现如此神奇的功能 |