【发布时间】:2018-08-09 21:21:51
【问题描述】:
我试图将一个长的 typedef(C) 分成它的单词,然后打印每行的第二个单词
variable = """int32_t adc_cal_A; / Simple point slope calculation adjustment needed for the ADC */ \r\n
int32_t adc_cal_B; /* y = Ax + B */"""
list = variable.splitlines()
for line in list:
wordlist = line.split()
for line in wordlist:
output = wordlist[1][:-1]
print output
它成功打印了我的测试列表中每一行的第二个单词,但它多次重复该单词。结果如下:
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_A
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
adc_cal_B
Process finished with exit code 0
任何人都知道为什么会这样。有没有简单的解决办法?
【问题讨论】:
-
不要使用
list,它是关键字 -
您正在迭代
wordlist,但每次都打印变量名。您最终会在每一行中为 每个单词 打印变量名称。 -
听起来很傻,但要理解上面的注释,只需在代码末尾插入
break。 -
@IgorRaush 的建议是去掉
for line in wordlist:这一行。有趣的是它在问题的标题中 - “冗余 for 循环”
标签: python string list for-loop