【问题标题】:How to extract number and characters from a tuple in python如何从python中的元组中提取数字和字符
【发布时间】:2021-07-25 14:30:00
【问题描述】:

我有一个元组列表或字典,如下所示。现在我想分别提取数字和字符(电子邮件)。

('a.fish@lancaster.ac.uk 14', 'aaronz@vt.edu 110', 'ajpoland@iupui.edu 48', 'antranig@caret.cam.ac.uk 18', 'arwhyte@umich.edu 27', 'bahollad@indiana.edu 4', 'bkirschn@umich.edu 27', 'chmaurer@iupui.edu 111',)


{'a.fish@lancaster.ac.uk': 14, 'aaronz@vt.edu': 110, 'ajpoland@iupui.edu':48, 'antranig@caret.cam.ac.uk': 18, 'arwhyte@umich.edu': 27, 'bahollad@indiana.edu': 4, 'bkirschn@umich.edu‘: 27, 'chmaurer@iupui.edu’: 111)

然后我想将最大 # 和具有最大 # 的电子邮件添加到字符串中。

【问题讨论】:

  • 你的问题不清楚。请以正确的格式提供字典,添加您尝试过的代码,告诉我们您面临的问题并详细说明。这不是编码服务。

标签: python list dictionary tuples


【解决方案1】:

这是你想要的吗

d=('a.fish@lancaster.ac.uk 14', 'aaronz@vt.edu 110', 'ajpoland@iupui.edu 48', 'antranig@caret.cam.ac.uk 18', 'arwhyte@umich.edu 27', 'bahollad@indiana.edu 4', 'bkirschn@umich.edu 27', 'chmaurer@iupui.edu 111',)

dict1={i.split()[0]:int(i.split()[1]) for i in d}

print(max(dict1),dict1[max(dict1)])

【讨论】:

    【解决方案2】:
    input_tuple = ('a.fish@lancaster.ac.uk 14', 'aaronz@vt.edu 110', 'ajpoland@iupui.edu 48', 'antranig@caret.cam.ac.uk 18', 'arwhyte@umich.edu 27', 'bahollad@indiana.edu 4', 'bkirschn@umich.edu 27', 'chmaurer@iupui.edu 111',)
    dict = {}
    for val in input_tuple:
        temp_val = val.split(' ')
        dict[temp_val[0]]=int(temp_val[1])
    print (dict)
    

    输出: {'aaronz@vt.edu':110,'ajpoland@iupui.edu':48,'bahollad@indiana.edu':4,'antranig@caret.cam.ac.uk':18,'chmaurer@iupui。 edu':111,'arwhyte@umich.edu':27,'bkirschn@umich.edu':27,'a.fish@lancaster.ac.uk':14}

    以上将有助于从 python 中的元组中提取数字和字符。

    您能否澄清一下“然后我想将最大 # 和具有最大 # 的电子邮件添加到字符串中。”

    【讨论】:

      【解决方案3】:

      这是适合您的一种解决方案

      a_tuple = ('a.fish@lancaster.ac.uk 14', 'aaronz@vt.edu 110', 'ajpoland@iupui.edu 48', 'antranig@caret.cam.ac.uk 18', 'arwhyte@umich.edu 27', 'bahollad@indiana.edu 4', 'bkirschn@umich.edu 27', 'chmaurer@iupui.edu 111',)
      a_dict = {'a.fish@lancaster.ac.uk': 14, 'aaronz@vt.edu': 110, 'ajpoland@iupui.edu':48, 'antranig@caret.cam.ac.uk': 18, 'arwhyte@umich.edu': 27, 'bahollad@indiana.edu': 4, 'bkirschn@umich.edu': 27, 'chmaurer@iupui.edu': 111}
      
      
      print("***Tuple***\n")
      for each in a_tuple:
          new = each.split(' ')
      
          for n in new:
              if n.isdigit():
                  continue
              print(n)
      
      print("\n***Dictionary***")
      
      for keys in a_dict.keys():
          print(keys)
      

      【讨论】:

        【解决方案4】:

        您可以使用max(),如下所示。

        d ={'a.fish@lancaster.ac.uk': 14, 'aaronz@vt.edu': 110, 'ajpoland@iupui.edu':48, 'antranig@caret.cam.ac.uk': 18, 'arwhyte@umich.edu': 27, 'bahollad@indiana.edu': 4, 'bkirschn@umich.edu': 27, 'chmaurer@iupui.edu': 111}
        
        x = max(d.items(), key= lambda y: y[1])
        print(x)
        

        这给出了最大数量和相关的电子邮件。

        ('chmaurer@iupui.edu', 111)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-01
          • 2019-09-13
          • 1970-01-01
          • 2020-11-13
          相关资源
          最近更新 更多