有如下两个列表: lst1 = [1, 2, 3, 2, 5, 1, 2] lst2 = [2, 7, 9, 5] 编程实现: 1. 求哪些整数既在lst1中,也在lst2中? 2. 求哪些整数在lst1中,不在lst2中? 3. 求两个列表一共有哪些整数?
时间: 2023-05-29 16:03:46 浏览: 134
1. 使用集合的交集操作,即可求出既在lst1中,也在lst2中的整数:
```python
set1 = set(lst1)
set2 = set(lst2)
common_set = set1.intersection(set2)
common_list = list(common_set)
print(common_list)
```
输出结果为:[2, 5]
2. 使用集合的差集操作,即可求出在lst1中,不在lst2中的整数:
```python
set1 = set(lst1)
set2 = set(lst2)
diff_set = set1.difference(set2)
diff_list = list(diff_set)
print(diff_list)
```
输出结果为:[1, 3]
3. 使用集合的并集操作,即可求出两个列表一共有哪些整数:
```python
set1 = set(lst1)
set2 = set(lst2)
union_set = set1.union(set2)
union_list = list(union_set)
print(union_list)
```
输出结果为:[1, 2, 3, 5, 7, 9]
相关问题
合并列表lst1 = [1,2,3],lst2 = [4,5,6]
好的,你可以使用"+"运算符来合并两个列表,具体代码如下:
```python
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
# 使用"+"运算符合并两个列表
lst = lst1 + lst2
print(lst) # 输出合并后的列表
```
输出结果为:`[1, 2, 3, 4, 5, 6]`,即lst1和lst2被合并成了一个新的列表lst。
def gernerateList(): n,k = 0,0 finished = False while not finished: line = input('请输入 n 和 k 两个正整数,用英文逗号隔开:') nums = 1 try: n = int(nums[0]) k = int(nums[1]) if n > 0 and k > 0: lst = 2 #要求使用列表推导式 print(lst) finished = True else: print('输入错误,请重试!') except: pass print('输入错误,请重试!') if __name__=='__main__': gernerateList()
这段代码存在一些错误,我来帮你修正一下:
1. `line = input('请输入 n 和 k 两个正整数,用英文逗号隔开:')` 这一行应该改为 `nums = input('请输入 n 和 k 两个正整数,用英文逗号隔开:').split(',')`,以将输入的字符串按逗号分割为两个数字字符串。
2. `n = int(nums[0])` 和 `k = int(nums[1])` 这两行应该放在 `try` 块中。
3. `lst = 2` 这一行使用了列表推导式的语法,但没有推导式。如果要生成一个长度为 `k`,元素都为 `2` 的列表,可以用 `[2]*k` 来表示。
4. `pass` 这一行可以直接省略。
5. 在 `except` 块中,应该使用 `print('输入错误,请重试!')` 来提示用户输入错误。
修正后的代码如下:
```
def generateList():
n, k = 0, 0
finished = False
while not finished:
nums = input('请输入 n 和 k 两个正整数,用英文逗号隔开:').split(',')
try:
n = int(nums[0])
k = int(nums[1])
if n > 0 and k > 0:
lst = [2] * k
print(lst)
finished = True
else:
print('输入错误,请重试!')
except:
print('输入错误,请重试!')
if __name__ == '__main__':
generateList()
```
阅读全文