• Python学习札记(六) Basic3 List和Tuple


    参考:List Tuple

    Note

    List

    List是Python中一个很吊的数据结构,类似C语言的数组。

    1.定义:listname = [variable 1, v2, v3, ..., vn]

    eg.

    #!/usr/bin/env python3
    
    classmates = ['Chen', 'Li', 'Wang']
    
    print(classmates)
    

    output:

    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    

    2.可以使用索引来访问list中的元素,即C语言数组中的a[i],通过索引i访问数组中第i个元素。

    3.list可以使用负数作为索引,如索引-i,代表从list最后第i个元素。

    eg.

    i = int(input())
    
    print(classmates[i])
    

    output:

    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    0
    Chen
    
    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    1
    Li
    
    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    2
    Wang
    
    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    -1
    Wang
    
    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    -2
    Li
    
    sh-3.2# ./list1.py 
    ['Chen', 'Li', 'Wang']
    -3
    Chen
    

    当然,访问的索引不能越界。

    4.List是可变长的有序表,可以往list的末尾加入元素,使用的是append()方法。

    eg.

    classmates.append('Zhang')
    
    print(classmates)
    

    output:

    ['Chen', 'Li', 'Wang', 'Zhang']
    

    5.也可以把元素插入到指定位置,使用的是insert()方法。

    eg.

    classmates.insert(3, 'Chang')    # 将元素'Chang'插入到list的第三个位置
    
    print(classmates)
    

    output:

    ['Chen', 'Li', 'Wang', 'Zhang']
    ['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
    

    6.删除末尾元素,使用的是pop()方法,删除索引为i的元素,使用的是pop(i)方法。

    eg.

    print(classmates)
    
    classmates.pop()    # 删除最后一个元素'Zhang'
    
    print(classmates)
    
    classmates.pop(1)   # 删除第一个元素'Li'
    
    print(classmates)
    

    output:

    ['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
    ['Chen', 'Li', 'Wang', 'Chang']    
    ['Chen', 'Wang', 'Chang']
    

    7.替换第i个元素:listname[i] = [替换元素]

    eg.

    print(classmate)
    
    classmates[0] = 'Lingzhizzz'
    
    print(classmates)
    

    output:

    ['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
    ['Lingzhizzz', 'Li', 'Wang', 'Chang', 'Zhang']
    

    8.list元素类型也可以不一样

    eg.

    love = ['money', '952693358', 15, 32, 23, 9]
    
    print(love)
    

    output:

    ['money', '952693358', 15, 32, 23, 9]
    

    9.用方法len()计算list的长度:

    eg.

    print(len(love))
    

    output:

    6
    

    10.list可以相互嵌套,即list中的元素可以是list,类似C语言二维数组。

    eg.

    classmates.append(love)
    
    print(classmates)
    

    output:

    ['Lingzhizzz', 'Li', 'Wang', 'Chang', 'Zhang', ['money', '952693358', 15, 32, 23, 9]]
    

    访问listA中的元素listB中的元素(真绕= =),比如访问classmates中love中的'952693358'元素,方法是:classmates[5][1]。

    eg.

    print(classmates[5][1])
    
    print(classmate[5])
    

    output:

    15
    ['money', '952693358', 15, 32, 23, 9]
    

    11.如果list中一个元素都没有,就是一个空的list,长度为0.

    Tuple

    Python中还有一种有序列表,叫做元组tuple,tuple和list非常类似,但是tuple一旦初始化就不能修改

    1.tuple中的元素不能修改。

    2.tuple定义:tuplename = (v1, v2, v3, ..., vn)

    eg.

    #!/usr/bin/env python3
    
    mates = (1, 'a', 'c')
    
    print(mates)
    

    output:

    sh-3.2# ./tuple1.py 
    (1, 'a', 'c')
    

    3.注意:当tuple只有一个元素的时候,需要在该元素后面加“,”!

    原因:这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算。

    eg.

    mates = (1) # 此时mates是整数
    
    print(mates) 
    
    mates = (1,) # 此时mates是tuple
    
    print(mates)
    

    4.可变成的tuple,当tuple里面的元素有list的时候,list是可变长的。

    tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

    eg.

    #!/usr/bin/env python3
    
    mates = (1, 'a', 'c', ['Chen', 'Lingzhizzz'])
    
    print(mates)
    
    mates[3].append('Zhang')
    
    print(mates)
    
    mates[3].pop()
    
    print(mates)
    
    

    output:

    sh-3.2# ./tuple1.py 
    (1, 'a', 'c', ['Chen', 'Lingzhizzz'])
    (1, 'a', 'c', ['Chen', 'Lingzhizzz', 'Zhang'])
    (1, 'a', 'c', ['Chen', 'Lingzhizzz'])
    

    练习

    请用索引取出下面list的指定元素:

    # -*- coding: utf-8 -*-
    
    L = [
        ['Apple', 'Google', 'Microsoft'],
        ['Java', 'Python', 'Ruby', 'PHP'],
        ['Adam', 'Bart', 'Lisa']
    ]
    
    # 打印Apple:
    print(?)
    # 打印Python:
    print(?)
    # 打印Lisa:
    print(?)
    

    Ans:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    L = [
        ['Apple', 'Google', 'Microsoft'],
        ['Java', 'Python', 'Ruby', 'PHP'],
        ['Adam', 'Bart', 'Lisa']
    ]
    
    # 打印Apple:
    print(L[0][0])
    
    # 打印Python:
    print(L[1][1])
    
    # 打印Lisa:
    print(L[2][2])
    

    Output:

    sh-3.2# ./list2.py 
    Apple
    Python
    Lisa
    

    2017/1/25

  • 相关阅读:
    电子论文写作不发愁
    美化 Blog
    The problem with install redhat linux
    Unknown hard error.stop:c000021a.
    .NET集合类:定义,用途及使用条件
    linux ftp 命令详解
    [转]MVC和MVP的区别
    一次谷歌面试趣事(转)
    全文索引原理及其示例(sqlserver)【转】
    “什么是团队精神”——《海贼王》里的一段台词
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6349657.html
Copyright © 2020-2023  润新知