Python 如何向列表中的每个字符串添加字符串?

Python 如何向列表中的每个字符串添加字符串?,python,for-loop,Python,For Loop,我正在尝试创建一个for循环,将第一个list num的两个内容都附加到num2+单词1000。我在找 nums2=['一千'、'两千'、'三千'、'四千']。当我试图运行这个程序时,我得到的只是列表索引必须是整数或片,而不是str。有什么建议吗 nums = ['one', 'two', 'three', 'four'] nums2 = [] for i in nums: nums2.append(nums[i] + ' thousand') 编辑(美国东部时间2020年10月1

我正在尝试创建一个for循环,将第一个list num的两个内容都附加到num2+单词1000。我在找
nums2=['一千'、'两千'、'三千'、'四千']
。当我试图运行这个程序时,我得到的只是
列表索引必须是整数或片,而不是str
。有什么建议吗

nums = ['one', 'two', 'three', 'four']
nums2 = []

for i in nums:
     nums2.append(nums[i] + ' thousand')
编辑(美国东部时间2020年10月12日下午1:13):

这个问题已经被问过了!我的错。

当您在
nums
列表上迭代时,
i
是列表中的每个值;在第一次迭代中,
i
等于
one
,在第二次迭代中,
i
等于
two

因此,当您试图访问
nums[i]
时,您试图访问
nums[“一”]
(在第一次迭代中),这显然是不存在的

要解决此问题,您可以使用
range
,将for循环更改为基于索引的循环:

for i in range(len(nums)):
  nums2.append(nums[i] + ' thousand')
或者您可以完全停止尝试从循环中访问列表,并使用
i
的值作为前缀,将
1000
附加到:

for i in nums:
  nums2.append(i + ' thousand')
在本例中,“i”是字符串,因为字符串是列表中的元素。尝试在append中使用i而不是nums[i]。例如:

nums = ['one', 'two', 'three', 'four']
nums2 = []

for i in nums:
     nums2.append(i + ' thousand')

for循环中的变量i引用nums列表中的各个元素,在本例中这些元素是字符串。您需要整数作为索引,因此在您的情况下,for循环可以修改为:

for i,k in enumerate(nums):
 nums2.append(nums[i] + ' thousand')
您可以通过打印nums2检查是否正确:

print(nums2)
您可以尝试:

nums = ["Ford", "Volvo", "BMW"]
nums2 = []

for i in nums:
  nums2.append(i + ' thousand')

i
是实际值,而不是索引。无需在附加语句中再次调用
nums
对于nums中的i:
可以是
对于范围内的i(len(nums)):
。或者只需将
nums[i]
更改为
i
@RandomDavis,它不需要是索引。只需使用该值。您的意思是:
nums2=[num+'000'表示num中的num]
?非常好的解释,谢谢!我真的很感谢你的帮助。