Python基础之数据基本类型之(list)

1.list的基本功能

序列是python中最基本的数据结构,序列中的每个元素都分配一个数字--他的位置,或索引,第一个元素的索引是0,第二元素的索引是1,依次类推。

列表是最常用的python的数据类型。

a.创建一个 列表,只要把逗号分隔的不通的数据项使用方括号括起来即可,如下;

1 list1 = ["a","b","c","d","e"]
2 list2 = list()

len(object )可以获取某一对象的长度

列表的常用方法

b.增加:

1 list1.append("f") #在列表末尾,添加f
2 list1.insert(1,'g')#从列表中添加到索引(1)位置的后面

c.删除:

1 list1.remove("e") #移除列表中的e
2 list1.pop(1)      #默认删除列表中的最后一个值,加上索引,是删除相应索引的值,并且返回删除的是哪个值
3 del list1[3]      #删除列表的索引3的值
4 list1.clear() #清空列表

d.修改

list1[0] = 'A' #修改列表的第一个值

e.查询(切片:获取某一段范围的值)

复制代码
1 print(list1[0:3]) #查询列表中的前3个元素
2 print(list1[:])#查询列表中的全部元素
3 print(list1[3:])#查询第三个元素到结尾
4 print(list1[::2])#每隔一个,获取一个元素
5 print(list1[::3])#每隔两个,获取一个元素
6 print(list1[0:5:2])#从0到5的,每隔一个,获取一个元素
复制代码

f.其他的用法

print(list1.index('e'))
#获取该元素,在列表中的索引,(如果列表中有多个相同的元素,只会取找到的第一个元素的索引。
#当然也可获取某段范围的索引print(list1.index('d',2,5)))

print(list1.count('a')) #统计列表中有几个a(元素)

#扩展
list1.extend(list2)#把列表2扩展到列表1
print (list1)
['a', 'b', 'c', 'd', 'e', 'f', 'math', 'chinese', 'englist', 123, 456, 789]

#反转
list1.reverse()
print(list1)
['f', 'e', 'd', 'c', 'b', 'a']

#排序
list1 = ["a","c","b","e","d"]
#python3.x系列的数据类型排序,字符串类型和数字类型不能一起进行排序
list1.sort()
print(list1)
['a', 'b', 'c', 'd', 'e']
View Code

复制:

1 # copy一份数据,copy原数据修改,新copy出来的数据不修改
2 list3 = list1.copy()
3 print(list3)
4 ['a', 'b', 'c', 'd', 'e']

程序练习

购物车程序:

需求:

  1. 启动程序后,让用户输入工资,然后打印商品列表
  2. 允许用户根据商品编号购买商品
  3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
  4. 可随时退出,退出时,打印已购买商品和余额
#!/usr/bin/env python
#-*- coding:utf-8 -*-
shop_list = [
    ['kindle',900],
    ['mac',11000],
    ['iphone',6000],
    ['bike',1800],
    ['open',180]
]
buy_product = []
while True:
    salary = input("请输入用户工资:")
    if salary.isdigit():
        salary  = int(salary)
        break
    else:
        continue
while True:
    print("商品列表".center(50,'*'))
    for index,i in enumerate(shop_list):
        print(index,i)
        # print(shop_list.index(i),i)
    choose_number = input("请输入商品编号[quit]:")
    if choose_number.isdigit():
        choose_number = int(choose_number)

        if choose_number < len(shop_list) and choose_number >=0:
            p_item = shop_list[choose_number]
            if  salary >= p_item[1]:
                buy_product.append(p_item)
                salary -= p_item[1]
                print("已购买的商品:{shop},当前的用户余额:{balance}元".format(shop = buy_product,balance = salary))
            else:
                print("余额不足,不能购买此商品,只有:{balance}元".format(balance=salary))
        else:
            print("无效的商品编号")


    elif choose_number == 'quit':
        print("已购买商品".center(50,'*'))
        for i in buy_product:
            print(i)
        print("用户当前余额:{balance}元".format(balance=salary))
        exit()
    else:
        print("无效的输入")
View Code

 

2.列表推导式

  它不是真正的语句,而是类似于循环的表达式——轻量级的循环。

example 1

  1. [x*x for x in range(10) if not x*x % 3]  

example 2 一句话生成一个乘法口诀列表

['%d*%d=%d'%(i,j,i*j) for i in range(1,10) for j in range(1,i+1)]

 

返回

posted @ 2017-05-28 14:59  红领巾下的大刀疤  阅读(132)  评论(0编辑  收藏  举报
/* 看板娘 */