python列表[1,1.2,1.3,0.9,0.3,-0.4,-0.7,-1,-0.7,-0.1,1.3,1.6]等等正负交替的元素,如何把里面连续的正数与负数,分成一组一组,比如:(1,1.2,1.3,0.9,0.3),(-0.4,-0.7,-1,-0.7,-0.1),(1.3,1.6)这样子?
时间: 2023-05-10 18:56:04 浏览: 163
可以使用以下代码实现:
```python
lst = [1,1.2,1.3,0.9,0.3,-0.4,-0.7,-1,-0.7,-0.1,1.3,1.6]
result = []
temp = []
for i in range(len(lst)-1):
temp.append(lst[i])
if lst[i]*lst[i+1] < 0:
result.append(tuple(temp))
temp = []
temp.append(lst[-1])
result.append(tuple(temp))
print(result)
```
输出结果为:
```
[(1, 1.2, 1.3, 0.9, 0.3), (-0.4, -0.7, -1, -0.7, -0.1), (1.3, 1.6)]
```
相关问题
sample_submission.csv中边界框这一列格式为a b c d,a,b,c,d在0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9中随机,用python将其随机填入
`sample_submission.csv` 中的 "边界框" 列通常表示一个矩形的四个坐标值,它们分别是左上角(x, y)和右下角(x + width, y + height)的缩放比例。这种格式 `a b c d` 指代的是宽度 (c - a) 和高度 (d - b),其中每个坐标值是在给定范围内随机选取的。
在Python中,你可以使用 `numpy` 库来生成这样的随机坐标,并将它们按照指定格式存储。这里是一个简单的示例:
```python
import numpy as np
# 定义坐标范围和样本大小
coordinates_range = [0.1, 0.9]
sample_size = len(sample_submission)
# 生成随机坐标
bbox_values = np.random.choice(coordinates_range, size=(sample_size, 4), replace=True)
# 构造边界框字符串,格式为 'a b c d'
bbox_strings = [' '.join(map(str, row)) for row in bbox_values]
# 将结果写入csv文件
with open('sample_submission.csv', 'w') as f:
f.write("image_id bbox\n")
for i, bbox_string in enumerate(bbox_strings):
f.write(f"{i+1} {bbox_string}\n")
sample_submission.csv中边界框这一列格式为a b c d,a,b,c,d在0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9九个数中随机,用python将其随机填入边界框这一列
在Python中,你可以使用`pandas`库处理CSV文件,并利用`random`模块生成随机数来填充`sample_submission.csv`中“边界框”列。这里是一个简单的例子:
```python
import pandas as pd
import random
# 假设你的数据位于名为'data'的DataFrame中,"边界框"列名是'bbox'
data = pd.read_csv('sample_submission.csv')
# 定义边界的范围
boundaries = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
# 创建一个新的列用于存储边界框,每个元素由四个随机边界值组成
data['bbox'] = data.apply(lambda row: [random.choice(boundaries) for _ in range(4)], axis=1)
# 保存修改后的数据到新的CSV文件
data.to_csv('new_sample_submission.csv', index=False)
```
这个脚本会将`bbox`列替换为每行四组独立随机选择的边界值,每个值都从给定的范围内选取。
阅读全文