如何在Python中删除字典列表中的内容
这个问题没什么,但我在其他地方找不到它,所以我在问它 如何在Python中搜索字典中列表中的内容 下面是一个例子:如何在Python中删除字典列表中的内容,python,dictionary,Python,Dictionary,这个问题没什么,但我在其他地方找不到它,所以我在问它 如何在Python中搜索字典中列表中的内容 下面是一个例子: mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]} # Additional code here print(mydict) >>> {"aaron":["1","4","10","3","6"] , "paul":["7","4","6","15"]} #Notic
mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]}
# Additional code here
print(mydict)
>>> {"aaron":["1","4","10","3","6"] , "paul":["7","4","6","15"]} #Notice the '\n' has disappeared...
我需要知道哪些代码使我能够搜索字典中每个键上的值列表的每个部分,删除字典任何部分中的任何“\n”
任何帮助都将不胜感激,谢谢:)
-Aaron您可以循环浏览字典,获取列表,即值,然后循环浏览列表中的值,并在不使用换行符的情况下重置它们。然后重置密钥的列表
mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]}
print mydict
for key, value in mydict.iteritems():
for ind, item in enumerate(value):
value[ind] = item.strip()
print mydict
{'aaron': ['1', '4', '10\n', '3', '6'], 'paul': ['7', '4\n', '6', '15']}
{'aaron': ['1', '4', '10', '3', '6'], 'paul': ['7', '4', '6', '15']}
您可以循环浏览字典,获取列表,即值,然后循环浏览列表中的值,并在不使用换行符的情况下重置它们。然后重置密钥的列表
mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]}
print mydict
for key, value in mydict.iteritems():
for ind, item in enumerate(value):
value[ind] = item.strip()
print mydict
{'aaron': ['1', '4', '10\n', '3', '6'], 'paul': ['7', '4\n', '6', '15']}
{'aaron': ['1', '4', '10', '3', '6'], 'paul': ['7', '4', '6', '15']}
不要在列表中搜索“\n”来删除它,只需对所有列表应用
strip
In [1604]: mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]}
In [1605]: for i in mydict.keys():
......: mydict[i] = map(str.strip, mydict[i])
......:
In [1606]: mydict
Out[1606]: {'aaron': ['1', '4', '10', '3', '6'], 'paul': ['7', '4', '6', '15']}
不要在列表中搜索“\n”来删除它,只需对所有列表应用
strip
In [1604]: mydict = {"aaron":["1","4","10\n","3","6"] , "paul":["7","4\n","6","15"]}
In [1605]: for i in mydict.keys():
......: mydict[i] = map(str.strip, mydict[i])
......:
In [1606]: mydict
Out[1606]: {'aaron': ['1', '4', '10', '3', '6'], 'paul': ['7', '4', '6', '15']}
如果要遍历字典,可以使用:
for key,value in mydict.items():
print (key,value)
要从字符串中删除“\n”,可以迭代并检查字符串是否包含“\n”,然后删除此子字符串:
for (key, value) in mydict.items():
for item in value:
item = item.replace('\n','')
如果要遍历字典,可以使用:
for key,value in mydict.items():
print (key,value)
要从字符串中删除“\n”,可以迭代并检查字符串是否包含“\n”,然后删除此子字符串:
for (key, value) in mydict.items():
for item in value:
item = item.replace('\n','')
如果只有\n条代码,则可以通过以下代码执行此操作:
for i in mydict:
mydict[i]=list(map(lambda s:str(int(s)),mydict[i]))
如果只有\n条代码,则可以通过以下代码执行此操作:
for i in mydict:
mydict[i]=list(map(lambda s:str(int(s)),mydict[i]))
OP的代码建议使用Python 3,他喜欢另一种理解,因此:
mydict = {k: list(map(str.strip, v)) for k, v in mydict.items()}
或
OP的代码建议使用Python 3,他喜欢另一种理解,因此:
mydict = {k: list(map(str.strip, v)) for k, v in mydict.items()}
或
使用枚举而不是range@PadraicCunningham更新!谢谢你的建议:)使用枚举而不是range@PadraicCunningham更新!谢谢你的建议:)这会创建一个新的dict,它不会修改原来的dict,而且k也必须在dict中,所以你不需要gethanks,这是迄今为止回答的最好和最有效的方法:)@Padraic,在这里修改字典而不是重新分配它很重要吗?我不确定这有多大区别,除非我们关心内存使用。关于
get()
,我喜欢get()
。除非我们担心该方法调用的额外执行时间(我假设get()对于k,mydict.iteritems()}
中的v将再次提高效率。我无法判断修改原始列表是否是问题Y,因此我猜问题X是为了得到所需的结果字典。我不知道数据集的大小/复杂度,所以我认为优化可以等到我们知道它们是必要的。这会创建一个新的dict,它不会修改原始的dict,k也必须在dict中,所以你不需要gethanks,这是迄今为止回答的最好和最有效的方法:)@Padraic,在这里修改词典而不是重新分配词典是否重要?我不确定这有多大区别,除非我们关心内存使用。关于get()
,我喜欢get()
。除非我们担心该方法调用的额外执行时间(我假设get()对于k,mydict.iteritems()}
中的v将再次提高效率。我无法判断修改原始列表是否是问题Y,因此我猜问题X是为了得到所需的结果字典。我不知道数据集的大小/复杂度,所以我认为优化可以等到我们知道它们是必要的。与其使用调用int()
和str()
的lambda
函数,不如从两个选项中选择一个:1。仅使用字符串操作,使用映射(str.strip,mydict[i])
。2.将元素转换为int
s(对我来说,它们看起来确实应该是int
s),并使用map(int,mydict[i])
将它们保持原样。与调用int()
和str()
的lambda
函数不同,我认为最好选择两个选项之一:1。仅使用字符串操作,使用映射(str.strip,mydict[i])
。2.将元素转换为int
s(它们在我看来确实应该是int
s),并使用map(int,mydict[i])
保留它们。