当前位置: 首页 > 面试题库 >

属性错误:“列表”对象没有属性“分割”

於炯
2023-03-14
问题内容

我正在尝试读取文件,并用逗号在每行中拆分一个单元格,然后仅显示包含有关纬度和经度信息的第一和第二个单元格。这是文件:

时间, 纬度,经度 ,类型2015-03-20T10:20:35.890Z, 38.8221664,-122.7649994 ,地震
2015-03-20T10 :18:13.070Z, 33.2073333,-116.6891667 ,地震
2015-03-20T10 :15:09.000Z, 62.242 ,-150.8769 ,地震

我的程序:

def getQuakeData():
    filename = input("Please enter the quake file: ")
    readfile = open(filename, "r")
    readlines = readfile.readlines()

    Type = readlines.split(",")
    x = Type[1]
    y = Type[2]
    for points in Type:
        print(x,y)
getQuakeData()

当我尝试执行此程序时,它给我一个错误

“ AttributeError:’list’对象没有属性’split’

请帮我!


问题答案:

我认为您实际上在这里更加困惑。

最初的错误是您试图调用split整个行列表,而不能split列出一个字符串列表,而只能是一个字符串。因此,您需要split 每一行
,而不是全部。

然后您正在做for points in Type,并期望每一个points都能给您带来新的x感觉y。但这不会发生。Types是两个值,xy,所以首先pointsx,然后点是y,然后就可以完成。因此,同样,您需要遍历每行并从
每行 获取xy值,而不是遍历单行中的一行。 __Types

因此,所有内容都必须循环进入文件中的每一行,并对每一行执行一次splitintoxy一次。像这样:

def getQuakeData():
    filename = input("Please enter the quake file: ")
    readfile = open(filename, "r")

    for line in readfile:
        Type = line.split(",")
        x = Type[1]
        y = Type[2]
        print(x,y)

getQuakeData()

附带说明一下,您确实应该close在文件中添加一个理想的with语句,但是我将在最后讨论。

有趣的是,这里的问题并不在于您是个新手,而是您试图以专家会用的抽象方式来解决问题,而现在还不了解细节。这是完全可行的。您只需要明确地映射功能,而不是隐式地进行功能映射。像这样:

def getQuakeData():
    filename = input("Please enter the quake file: ")
    readfile = open(filename, "r")
    readlines = readfile.readlines()
    Types = [line.split(",") for line in readlines]
    xs = [Type[1] for Type in Types]
    ys = [Type[2] for Type in Types]
    for x, y in zip(xs, ys):
        print(x,y)

getQuakeData()

或者,一种更好的书写方式可能是:

def getQuakeData():
    filename = input("Please enter the quake file: ")
    # Use with to make sure the file gets closed
    with open(filename, "r") as readfile:
        # no need for readlines; the file is already an iterable of lines
        # also, using generator expressions means no extra copies
        types = (line.split(",") for line in readfile)
        # iterate tuples, instead of two separate iterables, so no need for zip
        xys = ((type[1], type[2]) for type in types)
        for x, y in xys:
            print(x,y)

getQuakeData()

最后,您可能想看一下NumPy和Pandas,它们 确实 为您提供了一种以几乎与您尝试的方式相同的方式在整个数据数组或数据帧上隐式映射功能的方法。



 类似资料:
  • 我试图分裂链接的图像是什么错在我的代码

  • 我在Jupyter Notebook中运行Keras神经网络模型(Python 3.6) 我得到以下错误 属性错误:列表对象没有属性ndim 从K调用. fi()方法后eras.model 我检查了Keras的requirements.txt文件(在Anaconda3中),Numpy、smpy和六个模块版本都是最新的。 什么可以解释这个属性错误? 完整的错误消息如下(似乎与Numpy有些关联):

  • 问题内容: 喂, 我的xpath在firePath中进行了验证,但是当我尝试发送_key时出现错误。 AttributeError:“列表”对象没有属性“ send_keys” 有人可以折腾我吗? 问题答案: 您将获得一个webElement 列表 ,该 列表当然不是单个元素,也没有方法。使用代替。请参阅此 api文档。

  • 当我执行代码时,我得到一个错误, 属性错误:“WebDriver”对象没有属性“find_element_by_xpath”

  • 当我运行上述代码行时,我得到以下错误。 返回lambda文档:词干分析器。阀杆(分析仪(doc)) 文件"/usr/local/lib/python2.7/dist-包/nltk/str/porter.py",第654行,在str中 词干=单词。下() AttributeError:“list”对象没有属性“lower” 如何解决这个错误?

  • 我正在创建词汇表,一个GUI程序来管理未知单词。我得到: /usr/bin/python3。5/主页/cali/Pycharm项目/词汇表/词汇表。Tkinter回调回溯中的py异常(最近一次调用最后一次): 文件“/usr/lib/python3.5/Tkinter/init.py”,第1553行,在调用返回self中。func(*args)文件“/home/cali/PycharmProjec