对于4个列表,如果第3个列表的第i个元素与第1个列表中的第n个元素相同,且第4个列表的第i个元素与第2列表中第n个元素也相同,则取出第1个列表的第n个元素和第2个列表的第n个元素,用Python怎么写
时间: 2024-04-29 12:23:03 浏览: 33
假设4个列表分别为list1、list2、list3、list4,可以使用如下代码实现:
```
result = []
for i in range(len(list3)):
if list3[i] in list1 and list4[i] in list2:
n = list1.index(list3[i])
result.append((list1[n], list2[n]))
```
解释:
- 遍历第3个列表list3,对于每一个元素list3[i],判断它是否同时出现在list1和list4中;
- 如果同时出现,就找到list1中对应的位置n,将list1[n]和list2[n]作为一组结果添加到result列表中;
- 最后返回result列表。
相关问题
对于4个列表,如果第2个列表的第n个元素与第1个列表中的第n个元素相同,且第4个列表的第n个元素与第2列表中第n个元素也想同,则取出第1个列表的第n个元素和第2个列表的第n个元素,用Python怎么写
假设四个列表分别为list1、list2、list3、list4,可以使用如下的代码来实现上述条件:
```python
result = []
for i in range(len(list2)):
if list2[i] == list1[i] and list4[i] == list2[i]:
result.append((list1[i], list2[i]))
```
其中,result是一个列表,用来存储符合条件的元素对,每个元素对是一个元组,包含了第1个列表和第2个列表中对应位置的元素。使用for循环遍历第2个列表的所有元素,判断其是否和第1个列表中对应位置的元素相同,并且同时判断第4个列表中对应位置的元素是否和第2个列表中对应位置的元素相同。如果满足条件,则将第1个列表和第2个列表中对应位置的元素组成一个元组,并添加到result列表中。最后,result列表中存储的就是所有符合条件的元素对。
输入一组数据构造一个列表,列表中的每个元素是一个包含3个元素的列表。其中第1元素代表姓名,第2元素代表课程,第3元素代表成绩(0--100的整数)。 对列表进行排序后输出,排序规则是按每个元素的第1和第3元素值从小到大排序,即如果第1元素值相同,再按第3元素值排序。 提示:第1元素是字符串,第3元素是整数。可使用以下2种排序方案之一: 1) 使用元组进行排序,例如:sort(key=lambda x:(x[0],x[2]))) 2) 由于成绩可能是1位数、2位数或3位数,可把成绩转换为3位的字符串,例如56转换为‘056’,再把姓名和'056'连接成一个字符串,用该字符串作为排序关键字。 输入: 第一行输入一个整数n,代表n组数据 依次输入n行,每一行姓名、课程、成绩(以空格分隔) 本题保证输入的n大于0,即无需考虑异常的输入数据。 输出: 输出结果列表的每个元素,一行输出一个元素。列表中每个元素是一个列表: 输入样例: 3 张浩 物理 100 王雪 英语 89 张浩 化学 11 输出样例: ['张浩', '化学', '11'] ['张浩', '物理', '100'] ['王雪', '英语', '89']
```python
n = int(input().strip())
data = []
for i in range(n):
name, course, score = input().strip().split()
data.append([name, course, int(score)])
data.sort(key=lambda x: (x[0], x[2]))
for d in data:
print(d)
```
或者使用第二种排序方案:
```python
n = int(input().strip())
data = []
for i in range(n):
name, course, score = input().strip().split()
score_str = '{:0>3d}'.format(int(score))
key = name + score_str
data.append([name, course, int(score), key])
data.sort(key=lambda x: x[3])
for d in data:
print(d[:3])
```
阅读全文