python | 数据类型 | 列表

# encoding: utf-8

# 列表:有序可变的元素集合
# 列表与数组的不同:可以存放不同类型的元素
names = ["marry", "tom", "lucy"]
# 列表之间的嵌套
l = ["marry", 1, True, names]
print(type(names))
print(type(l))

# python3中的列表如果没有使用,则不会立即生成
print(range(1, 9999))

# 列表推导式
nums = [1, 2, 3, 4, 5]
resultlist = [1 for num in nums]
print(resultlist)
resultlist = [num for num in nums]
print(resultlist)
resultlist = [num + 1 for num in nums]
print(resultlist)
resultlist = [num ** 2 for num in nums]
print(resultlist)
resultlist = [num ** 2 for num in nums if num % 2 != 0]
print(resultlist)

# 列表的常用操作
# 增 append
# 在列表的最后追加一个元素
# 会直接修改原列表
# 返回值为None
nums.append(6)
print(nums)

# 增 insert
# 在指定索引的前面添加一个元素
# 会直接修改原列表
# 返回值为None
nums.insert(0, 0)
print(nums)

# 增 extend
# 在列表中扩展另外一个可迭代序列
# 会直接修改原列表
# 返回值为None
s = "helloword"
nums.extend(s)
print(nums)

l = []
l.extend("helloword")
l.extend(range(10, 21))
print(l)

# 增 乘法运算
print(nums * 2)

# 增 加法运算
# 与extend区别:只能列表类型与列表类型相加
print(nums + [1, 2, 3, 4])

# 删 del
# 删除指定索引的元素
del nums[0]
print(nums)
# 也可以删除整个列表
# del nums

# 删 pop
# 移除并返回列表指定索引对应的元素
# 默认索引为-1,最后一个元素
result = nums.pop()
print(result, nums)

# 删 remove
# 移除列表中指定元素
nums.remove("h")
print(nums)

# 改
nums[0] = "e"
print(nums)

# 查
# 获取元素索引
print(nums.index("e", 3, len(nums)))

# 获取元素个数
print(nums.count("e"))

# 获取多个元素:切片
pic = nums[::]
# pic = nums[0:len(nums):1]
# pic = nums[::-1]
# pic = nums[0:2:]
print(pic)

# 遍历
# 根据元素进行遍历
for v in nums:
    print(v)
# 根据索引进行遍历
for id in range(len(nums)):
    print(id, nums[id])
# 遍历列表的枚举对象
s = "helloword"
nums = list(s)

print(nums)
print(list(enumerate(nums)))

for idx, val in enumerate(nums):
    print(idx, val)

for tuple_value in enumerate(nums):
    print(tuple_value)

# 迭代器
# 仅仅在迭代到某个元素时才处理该元素
# 适合遍历一些巨大的或者是无限的集合
import collections

# 判断是否为可迭代对象
print(isinstance(nums, collections.Iterable))
# 创建迭代器对象
it = iter(nums)
print(next(it))
# 迭代器不能多次迭代
for v in it:
    print(v)
# -------------
for v in it:
    print(v)

# 判定
s = "abc"
print("a" in s)
print("d" not in s)

# 比较
# 从左到右,逐位比较
result = [2, 2, 3] > [3, 4]
print(result)

# 排序
s = "hello word"
result = sorted(s)
print(result)
result = sorted(s, reverse=True)
print(result)

s = [("a", 12), ("b", 11), ("c", 10), ("d", 9)]
print(sorted(s))


def get_key(x):
    return x[1]


print(sorted(s, key=get_key))

# sorted(s)与s.sort()的区别
# 前者并不改变原列表,后者对原列表进行排序
s = list("hello word")
result = sorted(s)
print(result, s)

s = list("hello word")
result = s.sort()
print(result, s)

# 乱序
# 可以随机打乱一个列表
l = [1, 2, 3, 4, 5]
import random
random.shuffle(l)
print(l)

# 反转
l.reverse()
print(l)
# 切片反转,并不改变列表本身
result = l[::-1]
print(result, l)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值