我尝试了很多方法来解决这个问题,但不能在几行代码中完成,因为我是Python的新手。我想知道是否有人对以下问题有一个优雅的解决方案。
我有这样的原始行:
A: D
A: E
A: C
G: H
F: I
F: J
B: A
B: K
B: L
D: M
D: N
D: O
E: P
E: Q
C: R
C: S
C: T
如何使用Python将它们变成这种形式?
A: D; E; C
G: H
F: I; J
B: A; G; L
D: M; N; O
E: P; Q
C: R; S; T
换句话说,在"之前组合具有相同字符的条目:"用"分隔每个元素; "
答案 0 :(得分:1)
存储在字典中,然后打印:
lines = """foo: bar
foo: baz
a: b"""
result = {}
for line in lines.split("\n"):
(word, sentence) = line.split(":",1)
word = word.strip()
if word not in result:
result[word] = []
result[word].append(sentence.strip())
for word in result.keys():
print word + ": " + "; ".join(result[word])
答案 1 :(得分:0)
使用字典并在':'上分割每一行。
读取每一行,Key是前':'
分割,值是帖子':'
分割。为第一个值和附加值添加一些逻辑
my_dict = dict()
with open('file.txt') as f:
for line in f:
key,value = line.split(':')
if my_dict[key] is None:
my_dict[key] = value
else:
my_dict[key] += '; {0}'.format(value)