【问题标题】:How do i update a list using the for loop [closed]如何使用 for 循环更新列表 [关闭]
【发布时间】:2021-07-01 07:14:38
【问题描述】:

我不想使用“+”运算符加入并在之后删除重复项,而是按照以下代码使用 for 循环更新列表中的项目:

fname = input("Enter file name: ")
fh = open(fname)
x = 0

for lines in fh:
    words = lines.split()
    lst = words[:]
    if lst[x] in lst:
        continue
    y = lst[x]
    lst_full =lst.append("y")
print(list_full)

在文件中,总共有 4 个列表,我希望代码能够使用其他列表中的项目自动更新列表 1。请帮忙。

【问题讨论】:

  • 嗨,你能把清单发给我们吗?
  • 使用python-set和set-typecasting的特性,同样lst.append()不返回任何东西所以lst_full是None type object。还有一件事,如果你有一个空文件,这意味着循环不会被启动,所以你最后的print 语句将抛出declaration error,说no object named 'list_full' exists
  • 你的代码中有几个异常,在询问之前你是否在你的系统上运行过它,因为我看到了几个异常,尝试调试你的代码,你会发现我在说什么异常,您正在附加“y”,它是一个字符串,而 y 是一个变量,不会被附加到您的列表中。
  • 您好 Yashasvi,该文件不为空,因为我已尝试使用循环功能正常添加列表。我的目标是自动避免重复,特别是使用 append 方法。
  • 嗨 Yashasvi,如果 x 是字符串,我相信 append 方法遵循格式 a.append("x")。同样在这种情况下,所有项目都是字符串类型。如果我错了,请纠正我。

标签: python list for-loop append


【解决方案1】:

如果您有两个列表a = [1, 2, 3, 4] 和x = [5, 6, 7, 8],现在如果您执行a.append("x"),您可能会认为结果输出将是a = [1, 2, 3, 4, 5, 6, 7, 8],但情况并非如此,因为"x"是一个字符串,x 是一个变量,所以结果输出将是a = [1, 2, 3, 4, "x"],即使你使用a.append(x),结果输出也会是a = [1, 2, 3, 4, [5, 6, 7, 8]],对于[1, 2, 3, 4, 5, 6, 7, 8],你需要使用
@ 987654331@。希望对您有所帮助并消除您的所有疑虑。要删除重复项,请执行此操作
a = list(set(a))

【讨论】:

  • Yashasvi,感谢您的意见。但我希望代码一次查询一个字符的列表,这应该可以减轻您的担忧。另外,这就是我使用“if”语句进行条件过滤的原因。但是非常感谢。现在,我得到的错误是“第 10 行的错误输入,带有“继续”的行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2013-08-07
相关资源
最近更新 更多