我有一个代码如下.
for item in my_list:
print(item[0])
temp = []
current_index = my_list.index(item)
garbage_list = creategarbageterms(item[0])
for ele in my_list:
if my_list.index(ele) != current_index:
for garbage_word in garbage_list:
if garbage_word in ele:
print("concepts: ", item, ele)
temp.append(ele)
print(temp)
现在,我想在它被附加到temp时从mylist中删除ele(因此,它不会在主循环中被处理,因为它是一个垃圾字).
我知道,当它处于循环中时,从列表中直接删除元素是不好的.因此,我有兴趣知道是否有任何有效的方法来做到这一点?
例如,如果mylist如下;
mylist = [["tim_tam", 879.3000000000001], ["yummy_tim_tam", 315.0], ["pudding", 298.2],
["chocolate_pudding", 218.4], ["biscuits", 178.20000000000002], ["berry_tim_tam", 171.9],
["tiramusu", 158.4], ["ice_cream", 141.6], ["vanilla_ice_cream", 122.39999999999999]]
第一次迭代
对于第一个元素tim_tam,我得到了诸如yummy_tim_tam和berry_tim_tam之类的垃圾字.所以他们会被添加到我的临时列表中.
现在我想从列表中删除yummy_tim_tam和berry_tim_tam(因为它们已经添加到temp),因此它不会从头开始执行.
第二次迭代
现在,由于yummy_tim_tam不再在列表中,这将执行布丁.对于布丁,我得到了一组不同的垃圾词,如chocolate_pudding,饼干,提拉米.因此,它们将被添加到temp并将被删除.
第3次迭代
ice_cream将被选中.这个过程将继续下去.
我的最终目标是获得如下三个单独的列表.
["tim_tam", 879.3000000000001], ["yummy_tim_tam", 315.0], ["berry_tim_tam", 171.9] , ["pudding", 298.2]
["chocolate_pudding", 218.4], ["biscuits", 178.20000000000002], ["tiramusu", 158.4]
["ice_cream", 141.6], ["vanilla_ice_cream", 122.39999999999999]