将空列表替换为诸如“a”之类的字符

2024-10-02 02:40:58 发布

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

我想将字典中的空列表\u值替换为随机字符,如“a”。你知道吗

我的意见:

k = [{'1': 'man'},
{'8': []},
{'3': 'chester'},
{'5': 'united'},
{'7': 'one'},
{'0': 'man'},
{'2': 'army'},
{'4': 'my'},
{'6': 'random'},
{'9': 'example'},
{'1': 'for'},
{'8': []},
{'3': 'asking'},
{'5': 'in'},
{'7': 'stack'},
{'0': 'over'},
{'2': 'flow'},
{'4': 'expert'},
{'6': 'people'},
{'9': 'yes'}]

我的当前代码:

for i in k:
    for u, l in i.items():
        if "[]" in l:
            l.replace("[]", "a")
            print(l)

我试图运行此代码,但没有得到任何输出。如果可能的话,我想把所有的“[]”替换成“a”。有没有可能实现这一点?你知道吗


Tags: 代码in列表for字典examplemyrandom
3条回答

您一直在尝试用字符串替换[]类型,而您应该更新字典的值。另外,您在if "[]" in l:行中做了一个错误的条件检查,其中l是一个空列表,而字符串"[]"永远不会返回True

for i in k:
    for u, l in i.items():
        if []==l:
            i[u]='a'
            print(l)

输出

[{'1': 'man'},
{'8': 'a'},
{'3': 'chester'},
{'5': 'united'},
{'7': 'one'},
{'0': 'man'},
{'2': 'army'},
{'4': 'my'},
{'6': 'random'},
{'9': 'example'},
{'1': 'for'},
{'8': 'a'},
{'3': 'asking'},
{'5': 'in'},
{'7': 'stack'},
{'0': 'over'},
{'2': 'flow'},
{'4': 'expert'},
{'6': 'people'},
{'9': 'yes'}]

你可以试试这个。-你知道吗

k = [i if i.values() != [[]] else {i.keys()[0]:"a"} for i in k ]
print(k)

结果-

[{'1': 'man'},
 {'8': 'a'}, 
{'3': 'chester'},
 {'5': 'united'},
 {'7': 'one'},
 {'0': 'man'}, 
{'2': 'army'},
 {'4': 'my'}, 
{'6': 'random'}, 
{'9': 'example'}, 
{'1': 'for'}, 
{'8': 'a'}, 
{'3': 'asking'}, 
{'5': 'in'}, 
{'7': 'stack'}, 
{'0': 'over'}, 
{'2': 'flow'},
{'4': 'expert'}, 
{'6': 'people'}, 
{'9': 'yes'}]

代码中有2个错误。你知道吗

  1. 代码中的if条件是错误的。与其检查"[]"-这是一个string,不如检查[]这是一个列表。你知道吗
  2. 另外,不是替换包含空列表的键的值,而是附加到空列表。你知道吗

使用以下循环&;它应该可以工作。你知道吗

for i in k:
    for u, l in i.items():
        if l == []:
            i[u]="a"

相关问题 更多 >

    热门问题