2

因此,对于部分课程,我有来自txt文件的给定输入。基本上,我可以给出的输入字符串类似于

listy = ["Miko's Lounge", '41.2', '56.7', '99th Ave, NY', '3', '4', '5', '2']

我需要对此输入做的是删除地址,并将列表末尾的数字放入列表中自己的列表中,就像这样。

["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2'] ]

我知道我可以使用删除地址listy.pop(3)。但是字符串末尾的数字可能会有所不同!这些代表星级,有些地方的星级比其他地方多。是否可以从列表中的某个特定点删除所有索引,例如函数slice()之类的?

我一直在尝试使用该range函数使用 for 循环,但它似乎无法正常工作(或者我期望它如何)。

listy = ['1', '2', '3', '4', '5']


for i in range( 2 , len(listy)-1 ):
    listy.pop(i)

print listy

我得到的输出是:

['1', '2', '4']

当我试图从以下方面获得更多信息时:

['1', '2']

为什么'4'里面是随机的?我不明白这个范围的事情!我想念带有简单 for 循环的 java -_-

4

4 回答 4

12

您可以使用列表切片轻松地做到这一点:

>>> listy[:3]+[listy[4:]]
["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2']]
于 2012-10-02T02:02:44.093 回答
0

试试看:

listy = ["Miko's Lounge", '41.2', '56.7', '99th Ave, NY', '3', '4', '5', '2']
l = listy[:3]
l.append(listy[4:])
l

给你:

["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2']]
于 2012-10-02T02:05:33.760 回答
0

您可能应该已经阅读过 List 的文档:http: //docs.python.org/tutorial/datastructures.html

但是,我也没有看到您正在寻找的语法。

我认为您想要的是替换通用容器方法“切片”的两部分索引语法

python寻址子列表的方式是

myListInstance[start:end] //<-- note the colon

更多信息:

http://docs.python.org/tutorial/datastructures.html#the-del-statement

于 2012-10-02T02:12:29.970 回答
-1

首先,您的列表listy有五个元素。当您删除索引 2 元素时,剩下 4 个元素并且 len(listy) 返回 4 因此 listy[3] 被删除。因此你有[1,2,4]. 我希望你明白结果是怎么来的。调整

for i in range(3):
    listy.pop(len(listy)-1)
print listy
于 2016-07-02T13:25:25.810 回答