我想取字典的值将方法应用于每个值,然后将这些新值添加到不同的字典中。类似的东西:
d = {0:'a', 1:'b', 2:'c'}
def somefunction(d):
for value in d:
value.somemethod
value.anothermethod
value.onemoremethod
newdict = {0:value(result value of all 3 methods applied concanated together, 1:value(result value of all 3 methods applied concanated together), 2:value(you get the idea)
dict值的类型为<class 'bs4.element.ResultSet'>
,我想将.contents[]
方法应用于每个值,并将它们保存为新值的新值。
答案 0 :(得分:1)
您可以使用词典理解:
newdict = {k: (v.somemethod(),v.anothermethod(),v.onemoremethod())
for k,v d.items()}
所以在这里你构建一个新的字典,其中原始键映射在3元组上,其中包含对该值的三个方法调用的输出。
例如,如果方法为.isdigit()
,.isalpha()
和.upper()
,则结果为:
>>> {k: (v.isdigit(),v.isalpha(),v.upper()) for k,v in d.items()}
{0: (False, True, 'A'), 1: (False, True, 'B'), 2: (False, True, 'C')}
答案 1 :(得分:1)
您尝试迭代字典的方式不正确,如果您尝试从结果中创建新字典,则需要在迭代时将其添加到字典中并将其声明为你的循环。
如果您正在使用Python 2.x,则使用以下内容迭代字典:
for key, value in d.iteritems():
...
和3.x中:
for key, value in d.items():
...
如果我理解你想要的结果,你应该采取以下措施:
newDict = {k: '{}{}{}'.format(v.somemethod(), v.anothermethod(), v.onemoremethod()) for k, v in d.items()}
以便将每个方法的结果值连接在一起作为键的单个值。