python—列表2

本文介绍了Python列表的定义、特点以及各种操作,包括如何创建列表、与元组的区别、切片、连接、增删改查等。还讨论了列表的排序、逆转功能,并提到了列表在构建栈和队列数据结构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表list:打了激素的数组


1、定义列表

• 定义一个空列表
list = []
• 定义一个包含元素的列表,元素可以是任意类
型,包括数值类型,列表,字符串等均可。



元组和列表的区别:

(1)格式

  Tuple()

  List []

(2)# 元组是不可变数据类型,不能修改元素;

         # 列表是可变数据类型,可以修改元素;


2、列表的特性(与元组对比)

(1)、索引
# 正向索引
# 反向索引
# 拿出列表最后一个元素, 最后一个元素是列表, 再拿出列表的第三个元素,如下 :
   li[-1][0]


(2)、切片

# 取指定的列表元素
# 去掉列表的第一个元素
# 逆序显示


(3)、重复, 连接

L* 2
# 不建议这样连接两个列表,后面有效率更高的方法 ;

L1 + L2


(4)、成员操作符
  in 列表
  not in 列表
 >> True

 >> False



(5)、列表的增删改查



L.append  "追加元素到列表的最后:"

L.insert "增加元素到列表的指定位置:"


L.extend "增加多个元素到列表最后:"  (注意格式)



###########

# iterable 代表可迭代的;

# 目前学习的可迭代对象有 : str, list, tuple

##########



改   "通过列表的索引,对列表某个索引值重新赋值";




# 统计某个元素在列表中出现的次数 ;

# 找到某个值在列表中的索引值




# 删除列表中遇到的第一个 value 值;

L.remove("apple")

# 删除指定索引对应的值,默认是最后一个元素 ;
L.pop()
# 删除列表的第一个索引 ;
L.pop(0)


# 删除列表中第 i 个索引值;
del L[0]
# 删除除了第一个元素之外的其他索引值
del L[1:]
# 删除列表对象

del L




(6)、排序及逆转

排序:

L.sort()

# 排序,如果说都是数字,按照数字大小排序 ;

# 是字母的话,按照 ASCII 码来排序;
# 如何查看对应的 ASCII 码 ? ord('a')

ps : 将ascci码值转化为字符

chr( )

chr (ord(25))


逆转:

L[::-1]

L.reverse()


3、列表内置函数

1cmp(list1, list2)
比较两个列表的元素
2len(list)
列表元素个数
3max(list)
返回列表元素最大值
4min(list)
返回列表元素最小值
5list(seq)
将元组转换为列表




列表练习

test1

用户登录程序版本2:
用户名和密码分别保存在列表中;
用户登录时,判断该用户是否注册;
用户登录时,为防止黑客暴力破解, 仅有三次机会;
如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while....else...语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.

提示: 用户名和密码一一对应

users = ["user1", "user2", "user3"]

passwords = ["123", "456", "789"]
参考代码
# 存储用户名的列表;
users = ["user1", "user2", "user3"]
# 存储用户密码的列表;
passwds = ["123", "456", "789"]
trycount = 0
while trycount<3:
inname = raw_input("name:")
# 判断用户是否存在列表中;
if not inname in users:
print "用户未注册"
break
inpasswd = raw_input("password:")
# 找到用户在用户列表中的索引值,可以间接找到该用户对应的密码 ;
index = users.index(inname)
if inpasswd == passwds[index]:

print "登录成功!!"
break
print "ok"
else:
print "登录失败!!"
trycount += 1
else:

print "超过三次"






test 2、列表构建栈和队列数据结构


栈是先进后出(LIFO-first in last out);
类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,将来会用类实现)In [ ]:
#!/usr/bin/env python
#coding:utf-8
stack = []
info = """
栈操作
1). 入栈
2). 出栈
3). 栈长度
4). 查看栈
5). 退出
请输入你的选择:"""
# 死循环
while True:
choice = raw_input(info).strip()
if choice == "1":
print "入栈操作".center(40, "*")
value = raw_input("请输入入栈元素:")
stack.append(value)
print "元素%s入栈成功..." %(value)
elif choice == "2":
print "出栈操作".center(40, "*")
# if len(stack) == 0:
if not stack:
print "栈为空"
else:
item = stack.pop()
print "元素%s出栈成功...." %(item)
elif choice == "3":
print "查看栈长度".center(40, "*")
print len(stack)
elif choice == "4":
print "查看栈元素".center(40, "*")
if not stack:
print "栈为空"
for i in stack:
print i,
elif choice == "5":
exit()
else:

print "请输入正确的选择......"


队列
队列是先进先出(FIFO——first in first out):
类似于去餐厅买饭排队;
"""
queue = [1, 2,3]
队列操作
1). 入队:enQueue
2). 出队:
3). 查看队列
4). 退出
"""


test3

# 卡号由 6 位组成, 前 3 位是 610 , 后面的依次是 001, 002, 003...100



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值