python数据结构之列表、元组及元组与列表之间的相互转换

一、列表(list)

1. print中的编码:

        编码:# -*- coding: utf-8 -*-(python3不用)

 2 .list的增删改查

#  names="chenyanhui wujiawei heweimin zhouqingxiang"
#  print(names)



names=["chenyanhui","wujiawei","heweimin","tuoqianqian","zhouqingxiang"]
names.append("yujianfeng")       #追加在后面
names.insert(1,"tuoqianqian")     #insert() 插到某个位置
names.insert(3,"maoxiaoyu")
names[2] = "chenzhenwei"          # 替换
print(names)

#      print(names[0],names[2])
#      print(names[1:3])    #切片  顾首不顾尾
#      print(names[3])      #切片
#      print(names[-2])     #切片   ‘-’倒序选择
#      print(names[-2:])    #切片    倒序的第一个0可以省略
#      print(names[:2])     #同上 0可以省略

#delete
# #names.remove("tuoqianqian")   #删除名字
#del names[1]=names  pop(1)       #删除序号的第几个
#names.pop()                      #不加下标就是删除最后一个

print(names)
#print(names.index("chenzhenwei"))   #index 索引
#print (names[names.index("chenzhenwei")])   #打出索引人的名字

#print(names.count("tuoqianqian"))     #count 统计
#names.reverse()                     #reverse 反转顺序
#names.clear()                      #clear 清空
#names.sort()                       #排序:特殊符号、数字、大写、小写  (ASCCII码)
print(names)
names2=[1,2,3,4,5]
names.extend(names2)                #exted 扩展 把n2拓展到里面去你  拓展后n2依然存在
#del names2
print(names,names2)

 

 3.列表的应用(深、浅复制)

 

import copy
names=["chenyanhui","wujiawei","heweimin",["jack","bob"],"tuoqianqian","zhouqingxiang"]

print(names[0:-1:2])     #切片
print(names[::2])     #省略0 -1

'''
#name2=names.copy()               #copy  浅层复制
# name2=copy.deepcopy(names)        #deepcopy 深度复制
print(names)
print(name2)
names[2]="何伟民"
names[3][0]="Jack"

print(names)
print(name2)

 

4.浅层复制的补充及引用(联合账号):

name2=names.copy()               #copy  浅层复制
name3=names[:]
names=list(names)               #工厂函数
person=["name",["saving moeny","100"]]
p1=person[:]
p2=person[:]
p1[0]="hero"
p2[0]="maria"
p1[1][1]=50     #修改金额
print(p1)
print(p2)

列表相关操作补充:

#更新列表

print("number_list before: " + str(number_list))

number_list[1] = 30

print("number_list after: " + str(number_list))

#删除列表元素

print("mixed_list before delete: " + str(mixed_list))

del mixed_list[2]

print("mixed_list after delete: " + str(mixed_list))

 

#Python脚本语言

    print(len([1,2,3])) #长度

   print([1,2,3] + [4,5,6]) #组合

   print(['Hello'] * 4) #重复

   print(3 in [1,2,3]) #某元素是否在列表中

 

# 列表操作包含以下函数:

# 1、cmp(list1, list2):比较两个列表的元素 

# 2、len(list):列表元素个数 

# 3、max(list):返回列表元素最大值 

# 4、min(list):返回列表元素最小值 

# 5、list(seq):将元组转换为列表 

 

二、元组(tuple):

          元组其实和列表差不多,也是存一组数,只不过一旦创建,便不能再修改,所以又叫只读列表。

          语法:names = (“jack”,"jack","eric")

           它只有两个方法,一个是count,一个是index()。

1、Tuple 与 list 的相同之处:


      定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
      Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。
       负数索引与 list 一样从 tuple 的尾部开始计数。
      与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。

2、tuple的优点:
      Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。

 

三、tuple与list之间的转换:

         Tuple 可以转换成 list,反之亦然。内置的tuple()函数接收一个 列表参数,并返回一个有着相同元素的 元组 tuple。而 list() 函数接收一个 元组参数返回一个 list。从效果上看,tuple() 冻结列表,而 list 解冻一个元组。

例1:将a分表转换成列表和数组

>>>a

(1,2,3,4)

>>>a=list(a)

[1,,2,3,4]

>>>a=tuple(a)

(1,2,3,4)

>>>

例2:列表和之间的相互转化:

   2.1 list------->tuple :  

          list = [1,2,3,4]     #创建列表

          tuple(list)            #强制转换

          print type(list)     # 查看是否转化成功

   2.2 tuple----->list:    

          tuple =(1,2,3,4)    #创建元组

          list(tuple)             # 强制转换

          print  type(tuple)   #查看是否转换成功

Tuple 的其他应用
一次赋多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v  的每个值赋值给每个变量。

你可能感兴趣的:(python)