文档章节

python:可迭代对象的索引

Oh_really
 Oh_really
发布于 09/23 13:54
字数 598
阅读 7
收藏 0

关于 python的range的用法: 注意是[ 开始,结束)的半开区间,不包括结束

http://www.runoob.com/python/python-func-range.html

 

import collections
from collections import Iterable
字符串 = "一二三四五六七八九十"
for i in range(-1, -11, -1):
    print('第', i, '个是:', 字符串[i], end=' ')
print()
for i in range(0, 10, 1):
    print(字符串[i], end=' ')
print()
列表 = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
for i in range(-1, -11, -1):
    print(列表[i], end=' ')
print()
for i in range(0, 10, 1):
    print(列表[i], end=' ')
print()
元组 = ('一', '二', '三', '四', '五', '六', '七', '八', '九', '十')
for i in range(-1, -11, -1):
    print(元组[i], end=' ')
print()
for i in range(0, 10, 1):
    print(元组[i], end=' ')
print()

集合 = set()
字典 = dict()
集合.add('1')
集合.add(1)
字典['Key0'] = '0000'
字典['Key1'] = '1111'
print(isinstance(字符串, Iterable), type(字符串))
print(isinstance(列表, Iterable), type(列表))
print(isinstance(元组, Iterable), type(元组))

print(isinstance(集合, Iterable), type(集合))
print(isinstance(字典, Iterable), type(字典))

#然而......
try:
    for i in range(0, len(集合)):
        print(集合[i], end=' ')
    print()
except Exception as e:
    print(e)

try:
    for i in range(0, len(字典)):
        print(字典[i], end=' ') #注意,字典[]方括号里面是键值,不是indexing!
    print()
except Exception as e:
    print(e)

有序字典 = collections.OrderedDict()
有序字典['0'] = '0' #注意不要把key设置成int的0,会混淆下面的输出,让你误认为字典的[key]取value是indexing
有序字典['1'] = '1'
有序字典['2'] = '2'
有序字典['3'] = '3'
print(有序字典)
try:
    for i in range(len(有序字典)):
        print(有序字典[i])
except Exception as e:
    print(e)

结果是:

所以,字符串,元组,列表这些有序可迭代对象是支持index的,而集合和字典是不支持index的.

第 -1 个是: 十 第 -2 个是: 九 第 -3 个是: 八 第 -4 个是: 七 第 -5 个是: 六 第 -6 个是: 五 第 -7 个是: 四 第 -8 个是: 三 第 -9 个是: 二 第 -10 个是: 一 
一 二 三 四 五 六 七 八 九 十 
十 九 八 七 六 五 四 三 二 一 
一 二 三 四 五 六 七 八 九 十 
十 九 八 七 六 五 四 三 二 一 
一 二 三 四 五 六 七 八 九 十 
True <class 'str'>
True <class 'list'>
True <class 'tuple'>
True <class 'set'>
True <class 'dict'>
'set' object does not support indexing
0
OrderedDict([('0', '0'), ('1', '1'), ('2', '2'), ('3', '3')])
0

Process finished with exit code 0

 

© 著作权归作者所有

共有 人打赏支持
Oh_really

Oh_really

粉丝 4
博文 43
码字总数 12123
作品 0
郑州
程序员
更深入的理解 Python 中的迭代

深入探讨 Python 的 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 Python 的 循环不会像其他语言中的 循环那样工作。在这篇文章中,我们将深入探讨 Python 的 循环来...

01%
05/26
0
0
30 个有关 Python 的小技巧

从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在Stack Overflow 或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当时...

大数据之路
2014/04/05
0
1
《Python从小白到大牛》第9章 数据结构

当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入。使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找。在计算机程序中会有很多数据,这些数据也需要一个容器将他们...

tony关东升
08/21
0
0
Python3快速入门——(7)迭代(iterable)和迭代器

迭代(iterable) #任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环 d = {'a': 1, 'b': 2, 'c': 3} #对dict迭代 for k,v in d.items()...

飞天小橘子
03/15
0
0
人人都能学会的python编程教程14:高级特性1

切片 取一个list或tuple的部分元素是非常常见的操作。比如,一个list如下: L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 第一个元素的索引是0,第二个元素的索引是1......,倒数第一个...

编程老司机
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

各种开源汇编、反汇编引擎的非专业比较

由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己...

simpower
27分钟前
3
0
(4)添加vue-router

(4)添加vue-router 1 安装vue-router cnpm install vue-router --save 2 页面准备 新建目录/src/views/common,此目录下面建立4个组件404.vue、home.vue、login.vue、theme.vue。每个文件...

neumeng
29分钟前
2
0
高可用性系统在大众点评的实践与经验

背景 所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用...

Skqing
37分钟前
3
0
Network protocols

The network stack does serveral seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detactable hiccups. It adapts smooth......

nao
39分钟前
1
0
Android 生命周期方法

1,onCreate(); 2,onStart(); 3,onResume(); //打开页面,前三个方法自动执行 4,onPause(); 5,onStop(); //打开其他页面,前一个页面执行这俩方法 6,onRestart(); //onStart(),onResume //当关闭...

lanyu96
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部