Python随机生成20个[1-100]之间的整数,存放于列表中,使用列表推导式查找列表中最大元素的所有位置。(可结合enumerate、max函数)
时间: 2023-09-03 13:26:11 浏览: 1058
详解Python利用random生成一个列表内的随机数
### 回答1:
可以回答这个问题。可以使用以下代码实现:
```python
import random
# 生成随机整数列表
lst = [random.randint(1, 100) for i in range(20)]
print(lst)
# 找到列表中最大元素
max_num = max(lst)
# 使用列表推导式查找最大元素的所有位置
max_indexes = [index for index, num in enumerate(lst) if num == max_num]
print("列表中最大的数为:", max_num)
print("最大数的位置为:", max_indexes)
```
输出结果为:
```
[49, 22, 73, 23, 94, 27, 1, 94, 51, 61, 73, 85, 47, 94, 71, 64, 84, 69, 58, 31]
列表中最大的数为: 94
最大数的位置为: [4, 7, 13]
```
### 回答2:
可以使用以下代码来随机生成20个[1-100]之间的整数,并将其存放在列表中:
```python
import random
numbers = [random.randint(1, 100) for _ in range(20)]
```
接下来,我们可以使用列表推导式结合`enumerate`和`max`函数来查找最大元素的所有位置:
```python
max_value = max(numbers)
max_positions = [index for index, value in enumerate(numbers) if value == max_value]
```
这里,`max_value`存放列表中的最大值,`max_positions`存放最大值的所有位置。使用列表推导式,我们遍历`numbers`列表的索引和值,如果值与最大值相等,就将索引保存到`max_positions`中。
最后,我们可以打印出结果:
```python
print("列表中最大的数为:", max_value)
print("最大数的所有位置为:", max_positions)
```
输出样例:
```
列表中最大的数为: 95
最大数的所有位置为: [2, 6, 9, 11, 12, 14, 16]
```
这样,我们就使用列表推导式查找了列表中最大元素的所有位置。
### 回答3:
使用随机模块的sample函数,生成一个随机列表:
```
import random
# 随机生成20个[1-100]之间的整数
random_list = random.sample(range(1, 101), 20)
print("随机生成的列表:", random_list)
```
然后使用列表推导式找到列表中最大元素的所有位置:
```
max_value = max(random_list)
max_index = [index for index, value in enumerate(random_list) if value == max_value]
print("列表中最大元素的值:", max_value)
print("列表中最大元素的所有位置:", max_index)
```
以上代码使用了enumerate函数来同时获取元素的位置和值,然后使用条件判断筛选出最大元素的所有位置,并存放到max_index列表中。最后通过打印输出,得到了最大元素的值和位置。
完整代码如下:
```python
import random
# 随机生成20个[1-100]之间的整数
random_list = random.sample(range(1, 101), 20)
print("随机生成的列表:", random_list)
max_value = max(random_list)
max_index = [index for index, value in enumerate(random_list) if value == max_value]
print("列表中最大元素的值:", max_value)
print("列表中最大元素的所有位置:", max_index)
```
运行结果示例:
```
随机生成的列表: [19, 77, 99, 87, 2, 64, 74, 14, 45, 41, 56, 85, 92, 98, 71, 97, 78, 37, 60, 48]
列表中最大元素的值: 99
列表中最大元素的所有位置: [2]
```
阅读全文