str
4、列表
创建列表:
1 2 3 | name_list = [ 'alex' , 'seven' , 'eric' ]
或
name_list = list ([ 'alex' , 'seven' , 'eric' ])
|
基本操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #索引:
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常
name_list.index( 'alex' )
#追加:
# extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
c = [ 'aaaaa' , 'bbbbb' ]
name_list.extend(c)
或者:
name_list.append( 'aaaa' )
#删除:
del name_list[ 1 ]
#长度:
len (name_list)
#切片: (原来是什么类型,切片取出来的元素还是原来的类型!)
li = [ 'aaaa' , 'bbbbb' , 'ccccc' ]
print (li[ 0 : 2 ])
#['aaaa','bbbbb']
#循环:
for i in name_list:
print (i)
#包含:
'alex' in name_list:
#关注:
name_list.clear()
name_list.extend()
name_list.reverse()
name_list.insert( 1 , "X" )
|

list
5、元组
创建元组:
1 2 3 | ages = ( 11 , 22 , 33 , 44 , 55 )
或
ages = tuple (( 11 , 22 , 33 , 44 , 55 ))
|
基本操作:
1 2 3 4 5 6 7 8 9 10 11 | 元组 tuple
t = ( 11 , 22 , 33 )
tuple ( "123123123" ) = > ( '1' , '2' , '3' , '1' , '2' , '3' , '1' , '2' , '3' )
tuple ([])
# 元组的特性,不可修改. 元素不可修改!
t = ( 11 , 22 ,[ "alex" , { "k1" : "v1" }])
t[ 2 ].append( "asdas" )
#(11, 22, ['alex', {'k1': 'v1'}, 'asdas'])
|
tuple
元组与列表区别: 元祖里面的值不能修改!
6、字典(无序)
创建字典:
1 2 3 4 5 6 7 | person = { "name" : "mr.wu" , 'age' : 18 }
或
person = dict ({ "name" : "mr.wu" , 'age' : 18 })
#列表转换成字典
li = [ 11 , 22 , 33 ]
new_dict = dict ( enumerate (li, 1 ))
#只能用enumerate!!! 单独用li 没有keys !
|
常用操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #索引:
info_dict[ 'name' ]
#新增: ( 原来没有则添加,有则修改! )
info_dict[ 'new' ] = 'new'
info_dict.update({ 'new' : 'new' })
#删除:
del info_dict[ 'new' ]
info_dict.pop( 'new' )
#键:
info_dict.keys()
#值:
info_dict.values()
#键值对:
info_dict.items()
循环:
for k in info_dict.keys():
print (k)
for v in info_dict.values():
print (v)
for k,v in info_dict.items():
print (k,v)
长度:
len (info_dict)
|
dict

formkeys
其他
1、for循环
用户按照顺序循环可迭代对象中的内容,
PS:break、continue
1 2 3 | li = [ 11 , 22 , 33 , 44 ]
for item in li:
print item
|
2、enumerate
为可迭代的对象添加序号
1 2 3 | li = [ 11 , 22 , 33 ]
for k,v in enumerate (li, 1 ):
print (k,v)
|
3、range和xrange
指定范围,生成指定的数字
1 2 3 4 5 6 7 8 | print range ( 1 , 10 )
# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
print range ( 1 , 10 , 2 )
# 结果:[1, 3, 5, 7, 9]
print range ( 30 , 0 , - 2 )
# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
|
练习题
一、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

View Code
二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}

View Code
三、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']

View Code
四、购物车
1 2 3 4 5 6 | goods = [
{ "name" : "电脑" , "price" : 1999 },
{ "name" : "鼠标" , "price" : 10 },
{ "name" : "游艇" , "price" : 20 },
{ "name" : "美女" , "price" : 998 },
]
|

View Code
五、用户交互,显示省市县三级联动的选择
1 2 3 4 5 6 7 8 9 10 11 12 13 | dic = {
"河北" : {
"石家庄" : [ "鹿泉" , "藁城" , "元氏" ],
"邯郸" : [ "永年" , "涉县" , "磁县" ],
}
"河南" : {
...
}
"山西" : {
...
}
}
|
|