【问题标题】:Splitting a list in python into three separate lists将python中的列表拆分为三个单独的列表
【发布时间】:2014-11-17 20:03:26
【问题描述】:

所以我需要在python中拆分一个列表,我的txt文件是这样的:

  ip,user,password
  ip,user,passord

等等。我已经在列表中阅读了,我可以拆分它,但我只会获得第一个 ip。我希望能够将列表分成三个单独的列表,一个用于 ip、用户和密码。到目前为止,这是我的代码:

def OpenFile():
   read = [line.strip() for line in open("People.txt" , 'r')
   return read

jh = OpenFile()
sp = [i.split(',',1)[0] for i in jh]

【问题讨论】:

    标签: python list split


    【解决方案1】:

    使用zip:

    >>> lines = ['ip,user,password', 'ip,user,passord']
    >>> rows = [line.strip().split(',') for line in lines]  # `lines` -> file object
    >>> rows
    [['ip', 'user', 'password'], ['ip', 'user', 'passord']]
    >>> zip(*rows)  # Output will be different in Python 3.x
    [('ip', 'ip'), ('user', 'user'), ('password', 'passord')]
    >>> ip, user, password = zip(*rows)
    >>> ip
    ('ip', 'ip')
    >>> user
    ('user', 'user')
    >>> password
    ('password', 'passord')
    

    【讨论】:

      【解决方案2】:

      您可以通过, 将它们拆分,然后zip 将拆分列表像这样组合在一起

      with open("People.txt" , 'r') as inFile:
         ips, users, passwords = zip(*[line.strip().split(",") for line in inFile])
      

      现在,如果你打印变量,你会得到

      print ips, users, passwords
      ('ip', 'ip') ('user', 'user') ('password', 'passord')
      

      【讨论】:

      • 我收到错误消息“要解压的值很多,值错误”
      • @aaronbill 你确定你的文件只有ip、用户和密码吗?你能显示一些实际数据吗?
      • 哦,抱歉,我刚刚知道了,我稍微更改了它的格式以使其正常工作,非常感谢
      • @aaronbill 如果这个答案对你有帮助,请考虑marking it as accepted
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2017-11-02
      • 2020-12-14
      • 1970-01-01
      • 2016-12-04
      • 2014-04-05
      • 2021-03-11
      相关资源
      最近更新 更多