关于 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
True
True
True
True
'set' object does not support indexing
0
OrderedDict([('0', '0'), ('1', '1'), ('2', '2'), ('3', '3')])
0
Process finished with exit code 0