【问题标题】:I keep getting this error with my multiline list merger我的多行列表合并不断收到此错误
【发布时间】:2018-07-02 21:19:58
【问题描述】:
    lista = ['Add', 'Append']
    listb = []
    listc = []
    listd = ['Delete']
    liste = []
    listf = []
    listg = []
    listh = []
    listi = []
    listj = []
    listk = []
    listl = []
    listm = []
    listn = []
    listo = []
    listp = []
    listq = []
    listr = []
    lists = []
    listt = []
    listu = []
    listv = []
    listw = []
    listx = []
    listy = []
    listz = []
    listabc123 = lista + listb + listc + listd + liste + listf + listg +                  listh + listi + listj # <---All this is on same line as listabc123 
    listabc123 = listabc123 + listk + listl + listm + listn + listo + listp + listq + listr # <---All this is on same line as listabc123 
    listabc123 = listabc123 + lists + listt + listu + listv + listw + listx + listy + listz # <---All this is on same line as listabc123 

在我写上面显示的最后一次尝试之前,我尝试对每个 lin 使用 \ 并在我想要合并的所有列表周围使用 ()。

运行时需要很长时间(我在空闲时按 Enter 之前等待的时间从未超过 5 分钟)然后我收到此错误。

runco​​de() 中的 IDLE 内部错误 回溯(最近一次通话最后): 文件“...\AppData\Local\Programs\Python\Python37-32\lib\idlelib\rpc.py”,第 339 行,在 putmessage r, w, x = select.select([], [self.sock], []) TypeError: 参数必须是 int,或者有 fileno() 方法。

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“...\AppData\Local\Programs\Python\Python37-32\lib\idlelib\rpc.py”,第 240 行,在异步队列中 self.putmessage((seq, request)) 文件“...\AppData\Local\Programs\Python\Python37-32\lib\idlelib\rpc.py”,第 342 行,在 putmessage 中 raise OSError("socket 不再存在") OSError: 套接字不再存在

感谢您抽出宝贵时间阅读并感谢您提供的任何帮助。提前致谢。

PS 使用 python 3.7

【问题讨论】:

  • 你为什么要这样做?你想做什么?您的错误也与您发布的代码完全无关。
  • 首先,您提到的错误不是您提供的代码。其次,你为什么有这么多清单?这方面有很多需要改进的地方,但我没有看到代码中有任何错误
  • 多行列表合并?请...至少使用 for 循环来遍历列表并将它们组合起来。
  • 我想最终将程序的命令放入列表中。然后在列表中为每个命令加上一个数字,以便我可以执行每个命令。
  • 为什么有这么多列表,只是因为,我想让它保持井井有条。 lista 中的所有 A 命令等等。

标签: python list multiline


【解决方案1】:

无法添加 cmets,但我至少会尝试在此处添加一些见解。如果我编写类似的代码:

a = ["one" , "two"]
b = ["three"]
c = []
d = ["four"]
e = []
combined = a + b + c + d + e

这不是组合列表的最佳做法(如 cmets 中所建议的那样),但在 python shell 中运行它不会产生任何错误。您收到的错误是 Cython 错误(引用包的链接:rpc.py

同样,我无法发布 cmets,但您是否尝试连接到服务器或类似的东西? (即:这是您的完整代码吗)如果不是,请深入了解您正在连接的内容或用于连接的代码。

您似乎关闭了一个连接,并试图在不打开它的情况下再次连接,但这只是您的错误猜测。

【讨论】:

  • 谢谢,实际上并没有尝试连接任何东西。是的,这就是我的全部代码。我正在尝试学习python以获得乐趣。还没有创建文件,那天使用了openpyxl。当我开始在 3.6 中遇到这些类型的错误时,3.7 是全新安装。自从我发布问题后,返回并卸载了我拥有的旧版本的 python。我在教程的前几页。我想这可能是我的防火墙,但我搞砸的任何东西都不应该尝试连接到任何东西,而且我的防火墙没有增加对被阻止威胁的计数。
  • 看起来您找到了答案(查看您在下面添加的答案)。当您安装它的多个实例时,Python 会变得很奇怪。您是否尝试过使用 Anaconda(如果您正在寻找不同版本的 python)?祝你学习 Python 好运,学起来很有趣。
【解决方案2】:

感谢大家的帮助。

似乎删除了我拥有的所有旧版本的 python 并重新安装修复了我的错误。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 2013-03-19
    • 1970-01-01
    • 2022-07-15
    • 2021-11-28
    相关资源
    最近更新 更多