循环Python拆分函数

循环Python拆分函数,python,Python,我正在尝试从文本文件中的一个大型域列表中剥离子域。该脚本可以工作,但仅适用于列表中的最后一个域。我知道问题在循环中,但无法确定extact问题。感谢您的帮助:) 这将以“example.test.com”和“return test.com”为例。唯一的问题是,它不会对列表中的每个域执行此操作—只对最后一个域执行此操作。您在每个循环迭代中都会覆盖t,因此自然只有来自最后一个迭代的值保留在t中。相反,将字符串放在list.append的列表中。在每个循环迭代中都覆盖t,因此自然只有上一次迭代的值保留

我正在尝试从文本文件中的一个大型域列表中剥离子域。该脚本可以工作,但仅适用于列表中的最后一个域。我知道问题在循环中,但无法确定extact问题。感谢您的帮助:)


这将以“example.test.com”和“return test.com”为例。唯一的问题是,它不会对列表中的每个域执行此操作—只对最后一个域执行此操作。

您在每个循环迭代中都会覆盖t,因此自然只有来自最后一个迭代的值保留在t中。相反,将字符串放在list.append的列表中。

在每个循环迭代中都覆盖t,因此自然只有上一次迭代的值保留在t中。相反,将字符串放在list.append的列表中。

您想要的是通过修改旧列表的元素来构建一个新的列表,幸运的是,Python非常适合此工作

with open("domainlist.txt", "r") as datafile:
    modified = ['.'.join(x.split('.')[-2:]) for x in datafile]
这与创建一个列表并在for循环中向其中添加项目的行为完全相同,只是读取速度更快、更方便。我建议观看上面链接的视频,以了解有关如何使用它们的更多信息


请注意,
file.read()
将整个内容作为一个大字符串读取,您可能希望在文件的行上循环,这只需在文件本身上循环即可。您当前的循环是文件中单个字符的循环,而不是行。

您想要的是通过修改旧列表的元素来建立一个新的列表,幸运的是,Python已经-非常适合这项工作

with open("domainlist.txt", "r") as datafile:
    modified = ['.'.join(x.split('.')[-2:]) for x in datafile]
这与创建一个列表并在for循环中向其中添加项目的行为完全相同,只是读取速度更快、更方便。我建议观看上面链接的视频,以了解有关如何使用它们的更多信息


请注意,
file.read()
将整个内容作为一个大字符串读取,您可能希望在文件的行上循环,这只需在文件本身上循环即可。您当前的循环是文件中单个字符的循环,而不是行。

试试这个。更好的可读性

with open ("domainlist.txt", "r") as datafile:
s = datafile.readlines()

t = []

for x in s:
    t.append('.'.join(x.split('.')[-2:]))

print t

试试这个。更好的可读性

with open ("domainlist.txt", "r") as datafile:
s = datafile.readlines()

t = []

for x in s:
    t.append('.'.join(x.split('.')[-2:]))

print t

您没有在循环中使用
x
:)您的输入文件是什么样子的?您没有在循环中使用
x
)您的输入文件是什么样子的?谢谢!正是我想要的:)谢谢!正是我想要的:)