一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

python-列表-元组-字典用法详解

时间:2016-08-11 编辑:简简单单 来源:一聚教程网

列表

格式:name = []

name = [name1, name2, name3, name4, name5]

#针对列表的操作

name.index("name1")#查询指定数值的下标值
name.count("name1")#查询指定数值的总数
name.clear("name")#清空列表
name.reverse("name")#反转列表数值
name.sort("name")#排序,优先顺序 特殊字符-数字-大写字母-小写字母
name.extend("name1")#扩展。把另一个列表的值增加到当前列表
#增加 add

name.append("name5")#追加
name.insert(1, "name1.5")#插入指定位置
#删除 delete

name.remove("name1")#根据人名删除
del name[0]#根据下标删除列表里的值
del name #删除列表
name.pop(0)#删除指定下标的值,默认是最后一个
#查询 select

print(name[0], name[2])#根据下标读取
print(name[0:2]) == print(name[:2])#切片  (连续的一段:顾头不顾尾,0和-1都可以省略)
print(name[-1])#-1 获取最后一个位置的值
print(name[-2:])#获取最后两个值,从前往后数最后一个是-1、依次是-3、-2、-1
#更改 update

name[1] = "name1.5"#更改指定下标的值
#列表copy分为深copy和浅copy

深copy 会把列表里的子列表 copy过去

name = ["name1", "name2", "name3", "name4", ["name5", "name6"]]
name1 = copy.deepcopy(name)
name[4][1] = "name7"
name[1] = "name2.1"
print(name)
print(name1)
result(结果)

['name1', 'name2.1', 'name3', 'name4', ['name5', 'name7']]
['name1', 'name2', 'name3', 'name4', ['name5', 'name6']]
浅copy 只会copy列表的第一层,如果新文件子列表里的数值更改,老文件子列表的值不会更改

name = ["name1", "name2", "name3", "name4", ["name5", "name6"]]
name1 = name.copy() = copy.copy(name) = name[:] = list(name)
name[4][1] = "name7"
name[1] = "name2.1"
print(name)
print(name1)
result(结果)

['name1', 'name2.1', 'name3', 'name4', ['name5', 'name7']]
['name1', 'name2', 'name3', 'name4', ['name5', 'name7']

 元组(不可变的列表)

格式:tuple = ("tu1", "tu2")

和列表一样,不可增删改。只能查询(切片)

tuple = ("tup1", "tup2")
print(tuple.count("tup1"))
print(tuple.index("tup2"))
练习题:

程序:购物车程序

需求:

启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额

#购物车练习题

shoplist = [[1, "iphone", 6000], [2, "mac pro", 12000], [3, "ipad air", 8000], [4, "chicken", 30], [5, "eggs", 5], [6, "bike", 500]]
mall = []
salary = int(input("please input your salary:"))
while True:
    for i in range(0, len(shoplist)):
        print(shoplist[i])
    goodid = int(input("Please enter the number you want to buy goods:")) - 1
    if int(shoplist[goodid][2]) > salary:
        print("Don't buy goods you want")
    else:
        mall.append(shoplist[goodid])
        salary = salary - shoplist[goodid][2]
    yesorno = input("To continue shopping?input Y or N")
    if yesorno == 'N':
        print("Do you have bought the goods:%s,remaining sum:%s" % (mall, salary))
        print("Thanks for coming.")


习题

字符串/元组/列表/字典互转

#-*-coding:utf-8-*-

#1、字典
dict = {'name': 'Zara', 'age': 7, 'class': 'First'}

#字典转为字符串,返回: {'age': 7, 'name': 'Zara', 'class': 'First'}
print type(str(dict)), str(dict)

#字典可以转为元组,返回:('age', 'name', 'class')
print tuple(dict)
#字典可以转为元组,返回:(7, 'Zara', 'First')
print tuple(dict.values())

#字典转为列表,返回:['age', 'name', 'class']
print list(dict)
#字典转为列表
print dict.values

#2、元组
tup=(1, 2, 3, 4, 5)

#元组转为字符串,返回:(1, 2, 3, 4, 5)
print tup.__str__()

#元组转为列表,返回:[1, 2, 3, 4, 5]
print list(tup)

#元组不可以转为字典

#3、列表
nums=[1, 3, 5, 7, 8, 13, 20];

#列表转为字符串,返回:[1, 3, 5, 7, 8, 13, 20]
print str(nums)

#列表转为元组,返回:(1, 3, 5, 7, 8, 13, 20)
print tuple(nums)

#列表不可以转为字典

#4、字符串

#字符串转为元组,返回:(1, 2, 3)
print tuple(eval("(1,2,3)"))
#字符串转为列表,返回:[1, 2, 3]
print list(eval("(1,2,3)"))
#字符串转为字典,返回:
print type(eval("{'name':'ljq', 'age':24}"))

元组,列表,字典的区别 .


1.列表
     list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。
实例:
#coding=utf-8
animalslist=['fox','tiger','rabbit','snake']
print "I don't like these",len(animalslist),'animals...'

for items in animalslist:
print items,

print "\n操作后"  
#对列表的操作,添加,删除,排序
animalslist.append('pig')
del animalslist[0]
animalslist.sort()
for i in range(0,len(animalslist)):
    print animalslist[i],
结果:
I don't like these 4 animals...
fox tiger rabbit snake
操作后
pig rabbit snake tiger
2.元组
     元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。
>>> zoo=('wolf','elephant','penguin')
>>> zoo.count('penguin')
1
>>> zoo.index('penguin')
2
>>> zoo.append('pig')
Traceback (most recent call last):
  File "", line 1, in
AttributeError: 'tuple' object has no attribute 'append'
>>> del zoo[0]
Traceback (most recent call last):
  File "", line 1, in
TypeError: 'tuple' object doesn't support item deletion
3 字典
字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
     键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。另外,记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺 序,那么你应该在使用前自己对它们排序。
实例:
#coding=utf-8
dict1={'zhang':'张家辉','wang':'王宝强','li':'李冰冰','zhao':'赵薇'}
#字典的操作,添加,删除,打印
dict1['huang']='黄家驹'
del dict1['zhao']
for firstname,name in dict1.items():
    print firstname,name
结果:
li 李冰冰
wang 王宝强
huang 黄家驹
zhang 张家辉

热门栏目