Python基础篇07-python基本数据类型-list

# 列表


# 1、定义列表
names = ['张三','李四','老王','小仓','小海','小明','小黑','小白']

# 2、通过下标获取元素
print(names[0]) # 第一个元素
print(names[1]) # 第二个元素
print(names[2]) # 第三个元素
# print(names[3]) # 第四个元素 ,没有这么多的元素给你取,程序上就会报错。
print(names[-1]) # 倒着取,取最后一个


# 3、获取多个元素,切片
# 使用规范:
#   names[startIndex:endIndex:step]  包头不包尾

print(names[1:3])   # 从下标为1的位置截取,一直到下标为3结束,但是不包含下标为3的元素
print(names[0:])    # 如果只给起始位置,不给结束位置,那么会截取后面的全部
print(names[:])     # 如果是从下标为0开始取,那么0可以省略
print(names[1:-1])  # 从下标为1的位置截取,一直截取到最后一个,但是不包含最后一个

print(names[::2])   # 每个一个取一个

# 追加
names.append(1)     # 追加元素,默认从最后添加
print(type(names[8]))

# 从指定索引插队
names.insert(1,'老六')
print(names[1])
print(names[2])     # 被插队了,就往后靠呗

# 修改数据
names[1] = '李四'
print(names[1])
print(names[2])

# 删除元素
del names[1]    # 删除指定下标元素,如果没有这个下标,则报错
del names[2]

names.remove('小仓')  # 删除指定元素,如果没有,则报错

names.pop() # 删除列表最后一个元素

arr = ['1','2','3','4']
names.extend(arr)   # 将列表arr合并到names


names_copy = names.copy()       # 浅拷贝

import copy
names_copy2  = copy.copy(names)     # 浅拷贝
names_copy3  = copy.deepcopy(names) # 深拷贝

# 统计列表中某个元素出现的次数
print(names.count('李四'))
print(names.count('111'))   # 如果列表中没有,则返回0

# 列表的排序与反转
print(names.sort()) # 不支持不同类型之间排序  ,没有返回值
print(names)    # 默认升序排序的

# 降序
names.sort(reverse=True)
print(names)

# 反转
print(names.reverse())
print(names)


# 获取指定元素的下标 ,返回找到的第一个所在的下标
# names[-2] = '李四'
print(names.index('李四'))

 

循环遍历:

# list 遍历
list = ['html', 'js', 'css', 'python']

# 方法1
print('遍历列表方法1:')
for i in list:
    print ("序号:%s   值:%s" % (list.index(i) + 1, i))

print('\n遍历列表方法2:')
# 方法2
for i in range(len(list)):
    print ("序号:%s   值:%s" % (i + 1, list[i]))

# 方法3
print('\n遍历列表方法3:')
for i, val in enumerate(list):
    print ("序号:%s   值:%s" % (i + 1, val))

# 方法3
print('\n遍历列表方法3 (设置遍历开始初始位置,只改变了起始序号):')
for i, val in enumerate(list, 2):
    print ("序号:%s   值:%s" % (i + 1, val))
# 需要注意的是,这里只是把起始的序号改了,但是值还是一个个遍历的

# iter()函数用来生成迭代器,返回迭代对象。
for item in iter(list):
    print(item)

 注:在遍历列表的时候,如果删除某个元素,下标是会重新计算的,所有在删除的时候通过下标去删除元素是可能出问题的。

 

import copy

# 浅拷贝
tempList = [1,2,3,4,[5,6,7,8]]

copyList = tempList.copy()
tempList.append(5)
tempList[4].append(9)

print("拷贝之后被修改的原列表:",tempList)    # [1, 2, 3, 4, [5, 6, 7, 8, 9]]
print("浅拷贝之后的列表:",copyList)    # [1, 2, 3, 4, [5, 6, 7, 8, 9]]


# 深拷贝,完全复制以前的列表,存储到新的空间
tempDeepList = [1,2,3,4,[5,6,7,8]]

deepCopyList = copy.deepcopy(tempDeepList)
tempDeepList.append(5)
tempDeepList[4].append(9)

print("拷贝之后被修改的原列表:",tempDeepList)    # [1, 2, 3, 4, [5, 6, 7, 8, 9]]
print("深拷贝之后的列表:",deepCopyList)    # [1, 2, 3, 4, [5, 6, 7, 8]]
posted @ 2019-08-14 17:55  为你编程  阅读(126)  评论(0)    收藏  举报