python在列表中随机抽取2个数,输出这两个数的整数形式
时间: 2024-05-08 18:15:07 浏览: 117
可以使用random模块的sample函数来实现:
```python
import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
selected = random.sample(numbers, 2)
print(selected[0], selected[1])
```
输出:
```
3 7
```
注意,sample函数返回的是一个列表,包含指定数量的随机元素。这里我们指定了要从numbers列表中随机选取2个元素,返回的selected列表中就有2个元素。我们可以通过下标来获取这两个元素。
相关问题
python 如何一次性抽取十个随机整数且不重复
您可以使用random.sample()函数来一次性抽取十个不重复的随机整数。示例如下:
```python
import random
random_numbers = random.sample(range(1, 101), 10)
print(random_numbers)
```
上述代码中,range(1, 101)表示从1到100的整数范围,您可以根据实际需求调整范围。random.sample()函数接收两个参数,第一个参数是抽样的范围,第二个参数是要抽取的数量。该函数会返回一个包含指定数量不重复随机整数的列表。
注意:如果抽取的数量超过了范围的长度,即无法满足不重复的要求,将会抛出ValueError异常。
逐行读取文件中的数据,并将数据存储于二维列表中,将每个子列表中可转为数值类型的数据均转为数值类型。输入一个正整数做为随机数种子,随机抽取两个站点的数据,应用本关提供的计算方法计算并这两个站点之间的距离。 输入一个整数做随机数种子,输出抽取到的点的经纬度和两点间距离。
好的,我可以帮你解决这个问题。
首先,我需要明确你的文件格式。假设你的数据文件每行包含站点名称、经度、纬度和其他信息,以逗号分隔。那么你可以按照以下代码读取并处理数据:
```python
import random
# 读取数据文件
data = []
with open('data.txt', 'r') as f:
for line in f:
fields = line.strip().split(',')
# 将可转为数值类型的数据转为数值类型
data.append([fields[0], float(fields[1]), float(fields[2]), fields[3:]])
# 随机抽取两个站点
random.seed(123) # 设置随机数种子
idx1, idx2 = random.sample(range(len(data)), 2)
site1, site2 = data[idx1], data[idx2]
# 计算两点间距离
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为公里
dlat = (lat2 - lat1) * math.pi / 180
dlon = (lon2 - lon1) * math.pi / 180
a = math.sin(dlat / 2) * math.sin(dlat / 2) + \
math.cos(lat1 * math.pi / 180) * math.cos(lat2 * math.pi / 180) * \
math.sin(dlon / 2) * math.sin(dlon / 2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
return R * c
lat1, lon1 = site1[2], site1[1]
lat2, lon2 = site2[2], site2[1]
dist = distance(lat1, lon1, lat2, lon2)
# 输出结果
print('站点1:{},经度:{},纬度:{}'.format(site1[0], lat1, lon1))
print('站点2:{},经度:{},纬度:{}'.format(site2[0], lat2, lon2))
print('两点间距离:{:.2f} km'.format(dist))
```
在上面的代码中,我使用了 Python 自带的 `random` 模块来随机抽取两个站点,使用了 `math` 模块来计算两点间距离。请将代码中的 `'data.txt'` 替换为你的数据文件名,并将随机数种子改为你需要的值。运行代码后,你将获得抽取的两个站点的经纬度和它们之间的距离。
阅读全文