python-认识(第三段-列表与元组)

        列表用来有序存放一组相关数据,可以存放不同类型的元素。

列表 命名 建议使用复数。如:scores\names\players

        列表中的每个元素都有一个位置编号,称为元素的索引。和字符串一样,也有正向和反向两种索引

 回顾例题:输入数字返回月份英文单词,改用列表操作:

months=['jan','feb','mar','apr','may',
        'jun','jul','aug','sep','oct',
        'nov','dec']
m=int(input('输入月份:'))
print("it's {}.".format(months[m-1]))

1、操作列表元素

        列表不仅具有 有序 性,也有 可变 性,可变就体现在以下三个方面:

(1)修改元素

        格式: 列表名[索引] = 新值

>>> K=['a','b','c']
>>> K[-1]='d'
>>> K
['a', 'b', 'd']


(2)增加元素

①append()方法

        指定在列表 尾部 ,追加新元素的方法。        格式:列表名.append(新元素)

>>> K.append('kun')
>>> K
['a', 'b', 'd', 'kun']
>>> len(K)
4

②insert()方法

        insert() 允许新元素 指定 插入位置,其中位置用 索引 表示。       

        格式:列表名.insert(索引,新元素)

>>> K.insert(0,'ikun')
>>> K
['ikun', 'a', 'b', 'd', 'kun']


(3)删除元素

①del命令

        del是python语言内置的命令,用来删除指定的列表元素,格式:del 列表名[索引]

>>> del K[0]
>>> K
['a', 'b', 'd', 'kun']

        del可以删除多个元素 del 列表名 [m : n] (第一段 字符串切片和索引 类似)


②pop方法

        pop()指定索引从列表中删除对应元素,并 返回 该元素,格式:列表名.pop(索引)

当缺省索引时,默认删除 尾元素


③remove方法

        remove()方法则是直接指定删除元素的值。

>>> K.remove('kun')
>>> K
['a', 'b', 'd']

注: 当列表有相同的值时,默认删除排在前面的元素删除


其他

        len()        in        not in       count()         //与[python-第二段]种介绍的用法类似

        index(): 在列表查找指定元素,存在则返回 索引 ,如果存在多个指定元素,则返回 最小 的索引;如果不存在则 报错


2、操作整个列表

(1)遍历列表

        从头到尾的访问列表元素。比如:

        想要按照顺序输出列表的元素放入语句种,利结合之前所学我们可以用 

for i in range(个数): 

        print(”& {} &&&&“.format(列表[ i ]))  

for item in 列表名:

        print(”& {} &&&&“.format(item)  


(2)列表排序

①sort()方法

        默认列表的元素 从小到大 排序

        降序:列表.sort(reverse = True)        若reverse=False,则是升序

>>> s=['1','3','2']
>>> s.sort()
>>> s
['1', '2', '3']
>>> s.sort(reverse=True)
>>> s
['3', '2', '1']


②sorted()函数

        只生成排序后的副本,不改变原列表

>>> a=[1,4,3]
>>> sorted(a)
[1, 3, 4]
>>> a
[1, 4, 3]


(3)列表切片

        列表[起始索引:终止索引]

        缺省起始索引默认从0开始,缺省终止索引默认到最后一个截至。

        还可以指定切片提取元素的方式:每隔n个元素提取一个元素:[起始:终止:n]

        当 起始索引 大于 终止索引 ,且n为负值时,表示逆向提取元素

        同时确实 起始 终止索引 ,且取值为 -1 ,表示取列表逆序组成的切片


(4)列表的扩充

        为列表添加新的列表

① + 运算

        将两个列表连起来,两个列表本身不会变化

>>> a=[1,2,3,4]
>>> b=[5,6,7]
>>> a+b
[1, 2, 3, 4, 5, 6, 7]

②extend()方法

        直接省略赋值语句,改变原列表的扩充

>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

③ * 方法

        重复 n 次 : 列表 * n


(5)列表的复制

① 切边实现

        a_copy = a[ : ]

② copy方法

>>> a=[1,2,3]
>>> b =  a.copy()
>>> b
[1, 2, 3]

        浅拷贝:列表的直接赋值

  注:仅仅是让原列表多了个新名字,不建议使用

>>> a=[1,2,3]                                                
>>> b=a.copy()
>>> del b[]                                                
  File "<pyshell>", line 1
    del b[]
          ^
SyntaxError: invalid syntax
>>> del b[0]
>>> b
[2, 3]
>>> a
[1, 2, 3]

        而直接赋值 : 最后结果 a = [2,3]


(6)列表的删除

        ①删除列表元素,不删除列表的存在 : del 列表 [ : ]

        ②删除这个列表,列表也将不存在: del 列表

>>> del a
>>> a
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
NameError: name 'a' is not defined


3、数值列表

(1)创建数值列表

① input()函数

        直接用 a = input("输入数值列表")         返回的是一个 字符串

        因此可以用 eval() 函数进行转换 ,可以理解为去掉了在列表两边的 单引号 。

>>> a = eval(input("输入数值列表:\n"))
输入数值列表:
[1,2,3,4,5,6,7]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> type(a)
<class 'list'>

② list()函数转换

>>> b = list(range(1,8))
>>> b
[1, 2, 3, 4, 5, 6, 7]

        直接用 b = range(1,8) ,则返回的还是range(1,8) 


(2)列表生成式

        生成一个特定含义的列表

>>> n = []
>>> for i in range(1,11):
    n.append(i**2)
    
>>> n
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

或者 :列表 = [循环变量的表达式 for 循环变量 in range()函数]

n = [i ** 2 for i in range(1,11)]


4、元组

        元组和列表的区别 : 元组用 () ,列表用 [ ] ; 元组不能被修改

        创建方法: a = ( 1,2,3,4) 或者 a = 1,2,3,4       当只有一个元素,要在后面加 

        操作对照表参照课本 p82 和 p83

        元组可以作为列表的元素,当然,不可以修改里面的

 >>> a = [('kun',99),('hei',88)]
>>> a[0][0]
'kun'
>>> a[1]
('hei', 88)
>>> a[0][1]=100
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment


5、转换函数

        list(): 将 字符串 或者 元组 转化为 列表 

        tuple(): 将 列表 转换为 元组

        字符串转换为列表时,单个字符都会被拆开,可以用第一段出现的 split() 解决! 

>>> a='I am IKUN'
>>> b=list(a)
>>> b
['I', ' ', 'a', 'm', ' ', 'I', 'K', 'U', 'N']
>>> b=a.split( )
>>> b
['I', 'am', 'IKUN']

课本上还有很多实例,参考p85~p93


------------------------------------------------------ 下一段  字典与集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值