【问题标题】:Slicing a List of Strings对字符串列表进行切片
【发布时间】:2014-07-08 11:00:03
【问题描述】:

我可以对字符串列表进行切片吗?如果有可能,任何人都可以告诉我该怎么做,以便我能够打印出一个特定的字符串,而不是组成列表的五个字符串。 干杯。

eg.
mylist = ['apples' 'oranges' 'lemons' 'cucumbers' 'bananas']
print 'orange'

** 我使用的编程语言是 python。每次我将它编码为 mylist[2] 时,它都会出现错误。我正在使用的列表是从 html rss 提要中提取字符串。每个字符串都是一个新的新闻标题。然而,即使它不断更新,列表中总是有 5 个字符串,它告诉我列表索引超出范围。但是,如果我只打印整个列表,它就可以正常工作**

#URLS for RSS Feeds

url_national = 'http://feeds.news.com.au/public/rss/2.0/news_national_3354.xml'
url_sport = 'http://feeds.news.com.au/public/rss/2.0/news_sport_3168.xml'
url_world = 'http://feeds.news.com.au/public/rss/2.0/news_theworld_3356.xml'
url_technology = 'http://feeds.news.com.au/public/rss/2.0/news_tech_506.xml'

def headlines (url):
    web_page = urlopen(url)
    html_code = web_page.read()
    web_page.close()
    return findall(r'<item><title>([^<]*)</title>', html_code)

#headlines list
list_national = [headlines(url_national)]
list_sport = [headlines(url_sport)]
list_world = [headlines(url_world)]
list_technology = [headlines(url_technology)]



def change_category():
    if label_colour.get() == 'n':
        changeable_label['text'] = list_national #here I would slice it but it doesn't work
    elif label_colour.get() == 's':
        changeable_label['text'] = list_sport
    elif label_colour.get() =='w':
        changeable_label['text'] = list_world
    else:
        changeable_label['text'] = list_technology

我需要将它分割成单独的标题的原因是,当为我的 GUI 按下单选按钮时,它会将它们打印在标签上的编号列表中,而不仅仅是在它们旁边的一行上运行 - 抱歉,我希望这会让感觉

【问题讨论】:

标签: python string list rss slice


【解决方案1】:

您在这里使用什么语言?通常您可以使用索引来访问列表中的特定条目。例如:

print myList[1]

【讨论】:

  • 我使用的编程语言是python。每次我像上面那样编写代码时,都会出现错误。我正在使用的列表是从 html rss 提要中提取字符串。每个字符串都是一个新的新闻标题。然而,即使它不断更新,列表中总是有 5 个字符串,它告诉我列表索引超出范围。但是,如果我只打印整个列表,它就可以正常工作
  • 除了您提供的没有逗号分隔的列表示例之外,我不明白为什么这不起作用。请记住,索引值范围从 0 开始,因此如果列表中有 5 个条目,则范围为 0 到 4。
  • 对不起哈哈那个例子没用 - 我把我的实际代码放在上面的编辑中
【解决方案2】:

您的列表创建中缺少逗号。你必须这样做:

 mylist = ['apples', 'oranges', 'lemons', 'cucumbers', 'bananas']

您将能够使用您的列表

mylist[0] # 'apples'
mylist[-1] # 'bananas'
mylist[2] # 'lemons'

【讨论】:

    【解决方案3】:

    我认为你得到的错误是这样的:

    mylist = ['apples' 'oranges' 'lemons' 'cucumbers' 'bananas']
    print mylist[5]
    IndexError: list index out of range
    

    原因是列表中的元素是从0 而非1 索引的。 mylist 具有从 045 元素。所以当你调用print mylist[5]时肯定会报错,因为列表中没有6th元素。

    Here 是有关列表的官方文档,请查看。 希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2015-10-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 2012-06-09
      相关资源
      最近更新 更多