【发布时间】:2013-01-21 22:56:10
【问题描述】:
我有两个字符串列表。在包含大约 1000 个字符串元素的 list1 中,您有一个名为“Date”的字符串,它随机出现,紧随其后的是一个包含特定日期的字符串:“17/09/2011”。这种情况发生了大约 70 次。在 List2 中:我有大约 80 个日期,作为字符串。
问题: 我想编写一个同时遍历两个列表的脚本,并按顺序将 list1 中的日期替换为 list2 中的日期。因此,显然您将用 list2 的前 70 个日期替换 list1 中出现的 70 个日期。之后我想将修改后的 list1 写入 .txt 文件。
我试过这个,但我完全卡住了。我是 Python 的超级菜鸟。
def pairwise(lst):
""" yield item i and item i+1 in lst. e.g.
(lst[0], lst[1]), (lst[1], lst[2]), ..., (lst[-1], None)
"""
if not lst: return
#yield None, lst[0]
for i in range(len(lst)-1):
yield lst[i], lst[i+1]
yield lst[-1], None
for line in file:
list1.append(line.strip())
for i,j in pairwise(list1):
for k in list2:
if i == "Date":
list1."replace"(j) # Dont know what to do. And i know this double for looping is wrong also.
【问题讨论】:
-
zip(lst,lst[1:])应该这样做。 -
提示:最好的方法是构建一个新列表,而不是修改旧列表。