代码之家  ›  专栏  ›  技术社区  ›  i33SoDA

如何将逗号分隔的数字字符串解析为int数组?

  •  1
  • i33SoDA  · 技术社区  · 2 年前

    我有下面的字符串,其中的数字用逗号分隔。该字符串是从Entry小部件中获得的。如何将其解析为int向量?

    from tkinter import *
    
    def key_return(event):
        stringToParse= String_entry.get()
        print(stringToParse) # which basically looks like this '110,220,330'
    
    
    root = Tk()
    
    global stringToParse
    
    # Creating Entry widget
    String_entry  = Entry(root, width=20, font= ('Helvetica 13'))
    String_entry.insert(INSERT, "insert text")
    
    # Pressing enter to get the widget string
    String_entry.bind('<Return>', key_return)
    
    String_entry.pack()
    root.mainloop()
    

    enter image description here

    …一些要解析的函数。。。。

    print(parsedString)
    

    我基本上需要以下输出作为int向量:

    # Output
    # 
    # [110,220,330]
    
    4 回复  |  直到 2 年前
        1
  •  2
  •   maxis112    2 年前

    这是你需要的吗?

    from tkinter import *
    
    def key_return(event):
        stringToParse= String_entry.get()
        intList = [int(x) for x in stringToParse.split(',')]
        print(intList)
    
    
    root = Tk()
    
    String_entry  = Entry(root, width=20, font= ('Helvetica 13'))
    String_entry.insert(INSERT, "insert text")
    
    String_entry.bind('<Return>', key_return)
    
    String_entry.pack()
    root.mainloop() 
    
        2
  •  1
  •   Dieter Reinert    2 年前

    Python中字符串到整数向量的解析

    要在Python中将包含逗号分隔的数字的字符串解析为整数列表,可以使用以下方法:

    1. 拆分字符串 :首先,使用逗号分割字符串以获得子字符串列表 split() 方法
    2. 转换为整数 :然后,使用列表理解或 map() 作用

    以下是如何在 key_return Tkinter应用程序中的函数:

    def key_return(event):
        stringToParse = String_entry.get()  # Get the string from the Entry widget
        # Split the string and convert each part to an integer
        parsed_list = [int(num) for num in stringToParse.split(',')]
        print(parsed_list)  # Output the list of integers
    

    此函数将输出列表 [110, 220, 330] 当用户输入字符串时 '110,220,330' 然后按Enter键。转换是通过将字符串拆分为多个部分来处理的,然后通过列表理解将每个部分转换为整数。

    注意事项

    • 错误处理 :您可能希望添加错误处理来管理输入不是有效数字的情况,这将引发 ValueError 。这可以使用解析逻辑周围的try-except块来处理。
    • 空字符串 :如果逗号之间可能存在空字符串,请考虑在转换前添加跳过空字符串或去掉空白的条件,以避免转换错误。

    使用这种方法,可以有效地将逗号分隔的字符串转换为整数列表,该列表可以直接在应用程序中使用。

        3
  •  0
  •   SIGHUP    2 年前

    不要使用通配符导入。

    请确保处理无法转换为int的数据。

    from tkinter import Entry, INSERT, Tk
    
    def key_return(_):
        stringToParse= String_entry.get()
        _list = []
        try:
            _list = [int(x) for x in stringToParse.split(',')]
        except ValueError:
            pass
        print(_list)
    
    
    root = Tk()
    
    String_entry  = Entry(root, width=20, font= ('Helvetica 13'))
    String_entry.insert(INSERT, "insert text")
    String_entry.bind('<Return>', key_return)
    String_entry.pack()
    
    root.mainloop()
    
        4
  •  0
  •   OldBoy    2 年前

    您可以使用内置 map 函数按顺序处理每个元素。在这种情况下使用 split 分隔字符串中的每个数字,以及 int 将每一个转换为整数,如下所示:

    stringToParse = '110,220,330' # the captured text
    numbers = list(map(int, stringToParse.split(','))) # return a list of the values
    print(numbers)