用一个字符替换数组中同一个键的所有匹配项,跳过第一个替换项

2024-06-26 14:22:56 发布

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

我尝试了许多方法来解决这个问题,但不能在几行代码中完成,因为我是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

换言之,将“:”之前具有相同字符的条目组合在一起,并用“;”分隔每个元素


Tags: 方法代码元素条目字符形式新手办法
2条回答

使用字典并拆分“:”上的每一行

读每一行,键是前':'分割,值是后':'分割。为第一个值和附加值添加一些逻辑

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)

储存在字典中,然后打印:

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])

相关问题 更多 >