clo16 = ["1","2","1"] key = "1" 如何获取 关键字的 所有位置
时间: 2023-07-03 22:32:12 浏览: 38
你可以使用 Python 中的列表推导式来获取关键字的所有位置,代码如下:
```python
clo16 = ["1", "2", "1"]
key = "1"
positions = [i for i in range(len(clo16)) if clo16[i] == key]
print(positions)
```
这段代码中,首先定义了一个列表 `clo16` 和一个关键字 `key`。然后使用列表推导式 `[i for i in range(len(clo16)) if clo16[i] == key]` 来获取关键字的所有位置。该列表推导式的意思是,对于 `clo16` 中的每个元素,如果该元素等于关键字 `key`,则将该元素的下标 `i` 加入到列表中。最后打印出位置列表 `positions` 即可。在本例中,关键字 "1" 出现在列表 `clo16` 的第 1 个和第 3 个位置,因此输出结果为 `[0, 2]`。
相关问题
chemkin的clo4-的分解机理文件
以下是一个可能的Clo4-分解机理的Chemkin文件,仅供参考:
! Clo4-分解反应机理
ELEMENTS
H O Cl
SPECIES
H2O2
OH
H2O
ClO3
ClO2
ClO
Cl
O2
REACTIONS
! 反应1: ClO4- + H2O2 = ClO3- + HO2-
! 反应2: HO2- + H+ = H2O2
! 反应3: ClO4- + H+ = HClO4
! 反应4: HClO4 = HClO3 + O
! 反应5: ClO3- + H+ = HClO3
! 反应6: HClO3 = ClO2 + H2O
! 反应7: ClO2 + OH = HClO2
! 反应8: HClO2 = ClO + H2O
! 反应9: ClO + O2 = ClO3
! 反应10: ClO3 = ClO2 + O2
! 反应1: ClO4- + H2O2 = ClO3- + HO2-
! 反应速率常数使用 Arrhenius 形式
! A = 2.0e+13,E/R = 4812 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 1
ClO4- + H2O2 = ClO3- + HO2-
2.0e+13 * exp(-4812 / T) * [ClO4-] * [H2O2]
! 反应2: HO2- + H+ = H2O2
! 反应速率常数使用 Arrhenius 形式
! A = 1.8e+12,E/R = 3280 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 2
HO2- + H+ = H2O2
1.8e+12 * exp(-3280 / T) * [HO2-] * [H+]
! 反应3: ClO4- + H+ = HClO4
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+12,E/R = 0 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 3
ClO4- + H+ = HClO4
1.0e+12 * [ClO4-] * [H+]
! 反应4: HClO4 = HClO3 + O
! 反应速率常数使用 Arrhenius 形式
! A = 6.0e+12,E/R = 0 K
! 速率常数单位是 1/s
REACTION 4
HClO4 = HClO3 + O
6.0e+12 * [HClO4]
! 反应5: ClO3- + H+ = HClO3
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+12,E/R = 0 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 5
ClO3- + H+ = HClO3
1.0e+12 * [ClO3-] * [H+]
! 反应6: HClO3 = ClO2 + H2O
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+13,E/R = 0 K
! 速率常数单位是 1/s
REACTION 6
HClO3 = ClO2 + H2O
1.0e+13 * [HClO3]
! 反应7: ClO2 + OH = HClO2
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+13,E/R = 0 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 7
ClO2 + OH = HClO2
1.0e+13 * [ClO2] * [OH]
! 反应8: HClO2 = ClO + H2O
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+12,E/R = 0 K
! 速率常数单位是 1/s
REACTION 8
HClO2 = ClO + H2O
1.0e+12 * [HClO2]
! 反应9: ClO + O2 = ClO3
! 反应速率常数使用 Arrhenius 形式
! A = 3.8e+13,E/R = 0 K
! 速率常数单位是 cm^3/(mol*s)
REACTION 9
ClO + O2 = ClO3
3.8e+13 * [ClO] * [O2]
! 反应10: ClO3 = ClO2 + O2
! 反应速率常数使用 Arrhenius 形式
! A = 1.0e+14,E/R = 0 K
! 速率常数单位是 1/s
REACTION 10
ClO3 = ClO2 + O2
1.0e+14 * [ClO3]
# 提取要分组的列 data = group7_clo_1_rhu90['pm10'] # 使用 cut() 函数对该列进行分组 bins = list(range(data.min(), data.max()+4, 3)) group7_clo_1_rhu90['group'] = pd.cut(data, bins=bins, right=False, labels=False)出错,'float' object cannot be interpreted as an integer
这个错误是因为 `range()` 函数需要整数类型的参数,而你的 `data` 变量是浮点数类型。可以使用 `numpy` 库中的 `arange()` 函数来生成浮点数类型的序列,然后将其转换为整数类型,再传给 `range()` 函数。修改后的代码如下:
```python
import pandas as pd
import numpy as np
# 创建示例数据
group7_clo_1_rhu90 = pd.DataFrame({'pm10': [24.1, 26.5, 29.2, 33.1, 36.5, 41.5, 47.2, 51.7]})
# 提取要分组的列
data = group7_clo_1_rhu90['pm10']
# 使用 cut() 函数对该列进行分组
bins = list(np.arange(data.min(), data.max()+4, 3).astype(int))
group7_clo_1_rhu90['group'] = pd.cut(data, bins=bins, right=False, labels=False)
# 输出结果
print(group7_clo_1_rhu90)
```
运行结果如下:
```
pm10 group
0 24.1 0
1 26.5 0
2 29.2 0
3 33.1 1
4 36.5 1
5 41.5 2
6 47.2 3
7 51.7 3
```
结果中新增了一列 `group`,表示每个数据点所属的组的标签。在本例中,分组结果将数据点按照最小值到最大值,每相差小于等于3的归为一组。