使用.remove()从列表中删除字符串时出现问题?

2024-06-08 00:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个公司的大名单,我正在迭代通过,我希望该计划摆脱个别公司,我通过循环。问题是,我每次在for循环中打印公司列表时,它总是打印相同的列表,即使在我打印之后也是如此。remove()

代码:

for company in companies:
    test_times = test_times + 1
    companies.remove(company)
    print(f'Companies list: {companies}')
    print(f'Dictionary: {companies_sector}')

印刷公司的产量示例:

['AA', 'AAAGY', 'AABC', 'AACB', 'AACE', 'AACPF', 'AAI1', 'AAIIQ', 'AAL', 'AAME', 'AANB', 'AAON']

应删除公司“AA”的第二个输出示例:

['AA', 'AAAGY', 'AABC', 'AACB', 'AACE', 'AACPF', 'AAI1', 'AAIIQ', 'AAL', 'AAME', 'AANB', 'AAON']

不知道该怎么办


Tags: test示例列表for公司companyremoveaa
2条回答

问题的一部分在于,您正在迭代一个不断变化的列表。这样试试看

companies =  ['AA', 'AAAGY', 'AABC', 'AACB', 'AACE', 'AACPF', 'AAI1', 'AAIIQ', 'AAL', 'AAME', 'AANB', 'AAON']
companies_list =  companies [:]
for company in companies:
    companies_list.remove(company)
    print(f'Companies list: {companies_list}')

编辑: 为了回答评论中原始海报的问题,请运行下面的代码并研究输出。我想这比我能解释得更好

array = ['a', 'b', 'c', 'd', 'e', 'f']
for element in array :
    print (f'\nThe element about to be removed is "{element}".')
    print (f'It is at location {array.index (element)} in the array.')
    print (f'The array is now {array}.')
    input ('Press enter to continue.')
    array.remove (element)

print (f'\nThe array ended up {array}.')

您可以迭代列表,并获取列表的子集,但第一个元素:

for _ in range(len(companies)):
  element = companies[0]
  print(f'element: {element}')
  companies = companies[1:]
  print(f'companies: {companies}')

相关问题 更多 >

    热门问题