【问题描述】 编程实现,从键盘读入多个以逗号分隔的元素并将其组织在一个列表中,然后遍历列表删除其中重复的元素。具体地,假设列表中存在k个值为a的元素,删除前k-1个元素,保留最后一个,不同元素在列表中的相对位置不应被改变。 【输入形式】 【输出形式】 【样例输入】 4, 3, 2, 3, 2, 4, True 【样例输出】 before: [4, 3, 2, 3, 2, 4, True] after: [3, 2, 4, True]
时间: 2024-03-24 21:39:30 浏览: 78
好的,下面是实现这个功能的Python代码:
```python
# 读取输入的字符串,将其转换为列表
input_str = input()
input_list = input_str.split(',')
# 初始化列表和字典
output_list = []
seen_dict = {}
# 遍历列表中的元素
for elem in input_list[::-1]:
# 如果元素没出现过,则添加到列表和字典中
if elem not in seen_dict:
seen_dict[elem] = True
output_list.insert(0, elem)
# 打印输出处理前和处理后的列表
print('before:', input_list)
print('after:', output_list)
```
这个代码与之前的代码类似,只是遍历列表时从后往前遍历,并且将新的元素插入到列表的头部,以保证不同元素在列表中的相对位置不会改变。
例如,输入4, 3, 2, 3, 2, 4, True,程序将输出before: [4, 3, 2, 3, 2, 4, True],after: [3, 2, 4, True],表示去重后的列表为[3, 2, 4, True],并且不同元素在列表中的相对位置不会改变。
相关问题
编程实现,从键盘读入多个以逗号分隔的元素并将其组织在一个列表中,然后遍历列表删除其中重复的元素。具体地,假设列表中存在k个值为a的元素,删除前k-1个元素,保留最后一个,不同元素在列表中的相对位置不应被改变。
```python
elements = input("请输入多个以逗号分隔的元素:") # 从键盘读入多个以逗号分隔的元素
lst = elements.split(",") # 将元素组织在一个列表中
i = 0
while i < len(lst): # 遍历列表
j = i + 1
while j < len(lst): # 查找重复元素
if lst[i] == lst[j]:
lst.pop(j) # 删除重复元素
else:
j += 1
i += 1
print("去重后的列表:", lst)
```
样例输入:
```
请输入多个以逗号分隔的元素:1,2,3,4,3,2,5,6,6,7
```
样例输出:
```
去重后的列表: ['1', '2', '3', '4', '5', '6', '7']
```
阅读全文
相关推荐











