我的代码如下:
manipulate_list = data['Incorrect Frequency Cap1'].astype(str).tolist()
manipulate_list = ['Blank' if x == '' else x for x in manipulate_list]
first_numerical = []
for i in manipulate_list:
first_numerical.append(i[0])
completed_frequency = []
for i in first_numerical:
if i == 'N':
completed_frequency.append(i+ 'o Cap Per Day')
if i == 'B':
completed_frequency.append(i+'lank')
else:
completed_frequency.append(i+' x Per Day')
当我使用以下内容检查“first_numerical”时 - first_numerical[5]
- 我得到“5”。
为什么当我检查“completed_Frequency”时会得到以下信息?
completed_Frequency[5]
= 'N x 每天'
最佳答案
IIUC,您的列表有点被覆盖,因为您错过了 elif
执行此操作
for i in first_numerical:
if i == 'N':
completed_frequency.append(i+ 'o Cap Per Day')
elif i == 'B':
completed_frequency.append(i+'lank')
else:
completed_frequency.append(i+' x Per Day')
让我们举个例子来澄清一下误会
n=['1','1','1']
b=[]
for i in n:
if i == '1':
b.append(i)
if i=='2':
b.append(2)
else:
b.append('none')
输出
['1', 'none', '1', 'none', '1', 'none']
正确方法
n=['1','1','1']
b=[]
for i in n:
if i == '1':
b.append(i)
elif i=='2':
b.append(2)
else:
b.append('none')
输出
['1', '1', '1']
不被覆盖,但会附加额外的值
关于python - 如何从列表中的每个项目中获取第一个字符并对其进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60021446/