【发布时间】:2020-10-02 20:28:52
【问题描述】:
我有一本包含以下值的字典:-
test_dict = {'a': ['a1', 'a2'], 'b': ['1.1.1.1:1111', '2.2.2.2:2222', '3.3.3.3:3333,4.4.4.4:4444', '5.5.5.5:5555']}
我需要将 3.3.3.3:3333 和 4.4.4.4:4444 之间的逗号 (,) 替换为 (',),这与其他逗号一样(单引号逗号空格)。
我尝试了下面的代码,但输出带有双引号 (")
val = ','
valnew = '\', \'' # using escape characters - all are single quotes
for k, v in test_dict.items():
for i, s in enumerate(v):
if val in s:
v[i] = s.replace(val, valnew)
print(test_dict)
输出:
{'a': ['a1', 'a2'], 'b': ['1.1.1.1:1111', '2.2.2.2:2222', "3.3.3.3:3333', '4.4.4.4:4444", '5.5.5.5:5555']}
预期输出:
{'a': ['a1', 'a2'], 'b': ['1.1.1.1:1111', '2.2.2.2:2222', '3.3.3.3:3333', '4.4.4.4:4444', '5.5.5.5:5555']}
请提出建议。
【问题讨论】:
-
'3.3.3.3:3333,4.4.4.4:4444'是一个字符串。也许您在最初编写列表的内容中存在错误?这些列表中的任何一个都可能有问题,还是总是列出索引 2? -
谢谢! @tdelaney。字典中没有错误。我们获得此组合的来源与我在问题中发布的相同。
-
这能回答你的问题吗? How to split strings inside a list by whitespace characters。您只需使用逗号而不是空格:
line.split(',')。
标签: python python-3.x string repr