python基础 - 序列(list、str、tuple)

1.列表 (有序、可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开)

 1.1  列表生成方式:

       (1)   [1,2,3,'xx',(1,2),{'name':'cc'}]   列表中可以存放各种数据类型   

       (2)  列表推导式:n_list = [ x**2 for x in range(10) if x%2 == 0]  ==>  [1,4,16,36,64]

                                                      输出       变量x                  条件语句

       (3)list(iterable)   通过list函数将其他可迭代对象转化为列表

 1.2 列表的常用方法

           python基础 - 序列(list、str、tuple)

del  关键字本质上是将一个变量从内存中删除,后续代码就不能使用该变量,要从列表中删除数据,建议使用列表提供的方法

                 eg:  name=”cc” 

                        del name

                        print(“name”)  //会报错,由于内存中不存在该变量

 

2. 元组(元素放在一对小括号“()”中

 2.1  Tuple(元组) 与列表类似,但元组中的元素不能修改

  1. 元组用()定义,索引从0开始
  2. 元组只包含一个元素时,需要加逗号,info_tuple = (50, )
  3. 取值,取索引,统计计数

                                               python基础 - 序列(list、str、tuple)

             info_tuple = (“cc”,12,1.80,”cc”)

            print(info_tuple[0])  //取索引为0的值

            print(info_tuple.index(“cc”)) //取某个数据的索引

            print(info_tuple.count(“cc”)) //取某个数据的个数

            print(len(info_tuple))      //元组元素的个数

 2.2 应用场景

   1) 作为函数的参数和返回值,函数可以接受或返回多个数据

   2) 格式字字符串,格式化字符串后的 ( ) 本质是元组

          info_tuple = (“cc”,18)

          info_str = “%s 的年龄是 %d” % info_tuple

          print(“%s 的年龄是 %d” % info_tuple )

    3) 列表转化为元组,防止数据被修改

          list(元组)    →  元组转化为列表

          tuple(列表)  →  列表转化为元组

                                      

元组的拆包:

       a = (“hello”,1,2,3,4)

       str,x,*n = a  ==> str = “hello”,x = 1,n = [2,3,4] 

                                 

zip()函数:zip(("a","b","c"),(1,2,3)) ==> ((“a”,1),(“b”,2),(“c”,3))

zip(x,y) 将可迭代对象x,y转化为元组

 

3. 字符串

3.1 常用方法:

                                      python基础 - 序列(list、str、tuple)

1) 判断类型

string.isspace()   如果 string 中只包含空格,则返回 True 

string.isalnum()  如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True

string.isalpha()   如果 string 至少有一个字符并且所有字符都是字母则返回 True

string.isdecimal() 如果 string 只包含数字则返回 True,`全角数字`

string.isdigit()    如果 string 只包含数字则返回 True,`全角数字`、 Unicode字符串( `⑴`、`\u00b2` )

string.isnumeric() 如果 string 只包含数字则返回 True,`全角数字`,      `汉字数字` , Unicode字符串 

  注:isdecimal,isdigit,isnumeric 均不能判断小数

string.istitle()    如果 string 是标题化的(每个单词的首字母大写)则  返回 True 

string.islower()  如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True

string.isupper()  如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True

 2) 查找和替换

string.startswith(str)  检查字符串是否是以 str 开头,是则返回 True

string.endswith(str)  检查字符串是否是以 str 结束,是则返回 True

string.find(str, start=0, end=len(string))  检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1

string.rfind(str, start=0, end=len(string))  类似于 find(),不过是从右边开始查找

string.index(str, start=0, end=len(string))  跟 find() 方法类似,不过如果 str 不在 string 会报错

string.rindex(str, start=0, end=len(string))  类似于 index(),不过是从右边开始

string.replace(old_str, new_str, num=string.count(old))  把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过num 次

  注:replace会返回新字符串,但不会修改原有字符串

 3) 大小写转换

string.capitalize()  把字符串的第一个字符大写

string.title()  把字符串的每个单词首字母大写

string.lower()  转换 string 中所有大写字符为小写

string.upper()  转换 string 中的小写字母为大写

string.swapcase()  翻转 string 中的大小写

 4) 文本对齐

string.ljust(width,[fillchar]) 返回一个原字符串左对齐,并使用空格填        充至长度width的新字符串

string.rjust(width,[fillchar])  返回一个原字符串右对齐,并使用空格填            充至长度 width 的新字符串

string.center(width,[fillchar])  返回一个原字符串居中,并使用空格填             充至长度width 的新字符串

 注:默认fillchar=” ” 英文空格填充在字符串的两边

 5) 去除空白字符

string.lstrip()  截掉 string 左边(开始)的空白字符

string.rstrip()  截掉 string 右边(末尾)的空白字符

string.strip()  截掉 string 左右两边的空白字符

 6) 拆分和连接

string.partition(str)  把字符串 string 分成一个 3 元素的元组 (str前        面, str, str后面)

string.rpartition(str)  类似于partition() 方法,不过是从右边开始查找

string.split(str="", num)  以 str 为分隔符拆分 string,如果 num 有         指定值,则仅分隔 num + 1 个子字符串,str 默认包含 '\r', '\t',               '\n' 和空格,返回一个列表

string.splitlines()  按照行('\r', '\n', '\r\n')分隔,返回一个包含各行作为             元素的列表

string.join(seq)  以 string 作为分隔符,将 seq(序列:列表,元组,字典等) 中所有的元素(字符串表示)合并为一个新的字符串

 

3.2  字符串的切片

    str[start:end:step]  指定的区间属于 左闭右开 型

    str[::-1]  反序

 

 

4. 序列的操作

 4.1 序列切片

  字符串、列表、元组支持切片操作

  字典(注意:字典不是序列)不支持切片操作,由于字典是无序的集合

 4.2 序列运算

  +    [1,2]+[2,3] ===> [1,2,2,3]    合并,适用于列表、元组、字符串

  *    [‘hi’]*3 ===>  [‘hi’,’hi’,’hi’]      重复 ,适用于列表、元组、字符串

  in/not in  3 in (1,2,3)  True        判断是否包含于,返回True/False

 列表、元组、字符串、字典(key是否包含)

 

5. 循环遍历

遍历 就是从头到尾一次从列表中获取数据

python中为了提高列表的遍历效率,专门提供的迭代iteration遍历,顺序从列表中获取数据,每一次循环过程,数据都会保存在变量中,使用 for 就能够实现迭代遍历

for 变量 in列表变量:

     pass;

for循环遍历可以循环遍历所有非数字型变量的变量:列表、元组、字典、字符串

   可以利用enumerate函数:(也适合于元组,列表,范围range)

        for i,item in enumerate(a)   i是索引值,item是元素值

提示:在实际开发中,由于列表中通常用于保存相同的数据类型,所以遍历应用高,而由于元组中数据类型基本不同,除非能够确认元组中的数据类型,否则对于元组的循环遍历需求不多。