zoukankan      html  css  js  c++  java
  • python序列

    序列基础

     序列:python包含6种内建的序列,常用的有:列表、元组、字符串。列表可以修改,元组和字符串不能修改。
     索引:从0开始递增,通过索引获取元素;可使用负数索引,从右至左。最后1个元素的位置编号为-1;

    >>> s = 'hello'
    >>> print(s[-1])
    o
    >>> print(s[5])
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        print(s[5])
    IndexError: string index out of range
    >>> fourth = input('Year: ')[3]
    Year: 2014
    >>> print(fourth)
    4
    >>>  

     切片:访问一定范围内的元素,返回新的序列,原序列不变;通过冒号来隔开两个索引。
    【左索引:右索引:步长】 左索引不能比右索引晚出现。不包括右边的索引元素,步长默认为1,可以为负数即从右到左提取元素。

    >>> s1 = 'hello,world'
    >>> print(s[0:5])
    hello
    >>> num = [1,2,3,4,5,6,7,8,9]
    >>> print(num[:])
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print(num[::2])
    [1, 3, 5, 7, 9]
    >>> print(num[1::2])
    [2, 4, 6, 8]
    >>> print(num[::-1])
    [9, 8, 7, 6, 5, 4, 3, 2, 1]
    >>> 

    序列相加:相同类型的序列之间的操作

    >>> print('hello '+'world!')
    hello world!
    >>> print([1,2,3]+[4,5,6])
    [1, 2, 3, 4, 5, 6]
    >>> print([1,2,3]+['a','b','c'])
    [1, 2, 3, 'a', 'b', 'c']

    乘法:

    >>> print('*'*10)
    **********
    >>> print([1,2,3]*10)
    [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
    >>> print((1,2,3)*10)
    (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3) 

    空列表:None是一个python内建值,表示空。用于构建空列表及其初始化

    >>> lst = [None]*10
    >>> print(lst)
    [None, None, None, None, None, None, None, None, None, None]

     成员资格:in 若为真返回True,为假返回False

    >>> permissions = 'rw'
    >>> print('ro' in permissions)
    False
    >>> subject = '$$$ Get rich now!!! $$$'
    >>> print('$$$' not in subject)
    False
    
    >>> database = [
    ['zyj','a'],
    ['sl','b']
    ]
    >>> username = input("user: ")
    user: zyj
    >>> password = input('pwd: ')
    pwd: a
    >>> if [username,password] in database:
                print('login sucess!')
    
    login sucess!
        

     长度、最小值、最大值:len、min、max

    >>> num1 = [100,300,20]
    >>> num2 = [1,2,3]
    >>> t = (1,2,3)
    >>> print(len(num1))
    3
    >>> print(min(num1))
    20
    >>> print(min(num1,num2))
    [1, 2, 3]
    >>> print(max(num1))
    300
    >>> print(max(t))
    3
    >>> 

     list函数:适用于所有类型的序列;生成一个列表。

    >>> lst1 = list("hello")
    >>> print(lst1)
    ['h', 'e', 'l', 'l', 'o']
    >>> lst2 = list("12345")
    >>> print(lst2)
    ['1', '2', '3', '4', '5']

    基本的列表操作:改变列表、删除元素
    元素赋值,不能为不存在的元素进行赋值

    >>> num3 = [1,5,6]
    >>> num3[1] = 2
    >>> print(num3)
    [1, 2, 6]
    >>> 

    删除元素:del语句实现

    >>> names = ['zyj','sl','zyj','py']
    >>> del names[2]
    >>> print(names)
    ['zyj', 'sl', 'py']

    分片赋值:

    >>> name = list('python')
    >>> name[2:]=list('game')
    >>> print(name)
    ['p', 'y', 'g', 'a', 'm', 'e']

    通过切片赋值插入新元素:在期望索引位置处赋值

    >>> name = [1,5]
    >>> name[1:1] = [2,3,4]
    >>> print(name)
    [1, 2, 3, 4, 5]
    >>> 

    通过切片赋值来删除元素:将期望删除的位置赋值为空

    >>> name = [1,2,3,4,5]
    >>> name[1:4] = []
    >>> print(name)
    [1, 5]
    >>> 

    上述操作中。当步长不为1时,不能进行插入操作,不能进行非等长赋值。

     列表方法

    方法是一个与某些对象有紧密联系的函数, 通过对象.方法(参数)来调用
     append :在列表末尾追加新的对象

    >>> lst = list('hello'+'123')
    >>> tup = tuple('hello')
    >>> lst.append(tup)
    >>> print(lst)
    ['h', 'e', 'l', 'l', 'o', '1', '2', '3', ('h', 'e', 'l', 'l', 'o')]
    >>> 

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

    >>> lst = list('hello'*3)
    >>> print(lst.count('h'))
    3

     extend:在列表末尾一次性追加另一个序列中的多个值

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

    与连接操作的区别:a + b 不会改变a的值,而extend会改变a的值,生成一个新的列表

    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> print(a + b)
    [1, 2, 3, 4, 5, 6]
    >>> print(a)
    [1, 2, 3]
    >>>

    通过切片赋值实现extend的方法:

    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> a[len(a):] = b
    >>> print(a)
    [1, 2, 3, 4, 5, 6]
    >>> 

    index方法:从列表中找出某个值第一个匹配项的索引位置,若没有找到则引发异常

    >>> lst = list('hello'+'1234')
    >>> print(lst.index('1'))
    5
    >>> 

    insert方法:用于将对象插入到列表中

    >>> lst = [1,2,3,'hello']
    >>> lst.insert(len(lst),4)
    >>> print(lst)
    [1, 2, 3, 'hello', 4]

    同样可以使用切片赋值来实现insert方法:

    >>> lst = [1,2,3,'hello']
    >>> lst[4:4] = [4]
    >>> print(lst)
    [1, 2, 3, 'hello', 4]

    pop方法:移除列表中的一个元素(默认最后一个),并且返回该元素的值,POP方法是唯一一个能修改列表又返回元素值(除None)的列表方法 

    >>> lst = [1,2,3,'hello']
    >>> print(lst.pop())
    hello

    pop方法可以通过参数去掉特定的元素

    >>> lst = [1,2,3,'hello']
    >>> print(lst.pop(1))
    2
    >>> 

    注在python中没有入栈方法,append方法类似与入栈

    >>> lst = [1,2,3,'hello']
    >>> lst.append(lst.pop())
    >>> print(lst)
    [1, 2, 3, 'hello']
    >>> 

    remove用于移除列表中某个值得第一个匹配项,移除不存在的值将返回报错。

    >>> lst = [1,2,3,4,'hello',4]
    >>> lst.remove(4)
    >>> print(lst)
    [1, 2, 3, 'hello', 4]
    >>> lst.remove('he')
    Traceback (most recent call last):
      File "<pyshell#109>", line 1, in <module>
        lst.remove('he')
    ValueError: list.remove(x): x not in list
    >>> print(lst)
    [1, 2, 3, 'hello', 4]
    >>> 

    reverse方法用于将列表中的元素反向存放

    >>> lst = [1,2,3,4,5]
    >>> lst.reverse()
    >>> print(lst)
    [5, 4, 3, 2, 1]
    >>> lst1 = lst[::-1]
    >>> print(lst1)
    [1, 2, 3, 4, 5]
    >>> print(lst)
    [5, 4, 3, 2, 1]
    >>> 

    sort方法用于在原位置对列表进行排序,改变原来的列表,不会返回一个排序好的副本

    >>> lst = [10,5,6,2,3,8,6,4]
    >>> lst.sort()
    >>> print(lst)
    [2, 3, 4, 5, 6, 6, 8, 10]
    >>> 

    当用户需要一个排序好的副本,同时要保留原列表不变的操作

    >>> lst = [1,4,6,3,2,9]
    >>> lst1 = lst[::]
    >>> lst1.sort()
    >>> print(lst)
    [1, 4, 6, 3, 2, 9]
    >>> print(lst1)
    [1, 2, 3, 4, 6, 9]
    >>> 

    也可以使用sorted函数实现上述需求:

    >>> lst =[1,4,6,3,2,9]
    >>> lst1 = sorted(lst)
    >>> print(lst1)
    [1, 2, 3, 4, 6, 9]
    >>> print(lst)
    [1, 4, 6, 3, 2, 9]
    >>> 

    高级排序:sort方法中使用可选参数:key和reverse

    >>> lst = ['hi','hello','you','me']
    >>> lst.sort(key = len)
    >>> print(lst)
    ['hi', 'me', 'you', 'hello']
    >>> lst = [1,4,6,3,2,9]
    >>> lst.sort(reverse = True)
    >>> print(lst)
    [9, 6, 4, 3, 2, 1]
    >>> 

    元组

    元组:不可变序列
    元组的创建:圆括号括起来,元素间使用逗号隔开.注意:当元组只有一个值时,也需要写逗号

    >>> tup = 1,2,3
    >>> print(tup)
    (1, 2, 3)
    >>> tup1 = ('hello','world')
    >>> print(tup1)
    ('hello', 'world')
    >>> tup3 = ()
    >>> print(tup3)
    ()
    >>> tup4 =('hello',)
    >>> print(tup4)
    ('hello',)
    >>> print(3*(40+2,))
    (42, 42, 42)
    >>> 

    tuple函数:以一个序列作为参数,并把它转换为元组

    >>> print(tuple('hello'))
    ('h', 'e', 'l', 'l', 'o')
    >>> print(tuple([1,2,3,4]))
    (1, 2, 3, 4)
    >>> print(tuple((1,2,3)))
    (1, 2, 3)
    >>>

    元组的操作

    >>> a = tuple('hello')
    >>> print(a[1])
    e
    >>> print(a[:2])
    ('h', 'e')
    >>> print(a)
    ('h', 'e', 'l', 'l', 'o')
    >>> 

      

     

      

  • 相关阅读:
    分布式文件系统技术选型
    .net core 与nginx笔记
    分布式场景
    c printf函数
    c 编程范式
    VS2019 卡顿,甚至卡死
    SQL Server 跨服务器查询
    递归 0到100求和
    moment js 制作倒计时 比较简单
    关于地狱回调的理解
  • 原文地址:https://www.cnblogs.com/zhaoyujiao/p/5125980.html
Copyright © 2011-2022 走看看