python基础-list


# 列表由一系列按特定顺序排列的元素组成。可以将任何东西加入列表中。python用[]表示列表.
# 列表是有序集合
# 鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、 digits或names).

bicycles = ['trek', 'giant', 'media']
print(bicycles)


# 1.访问列表元素
print(bicycles[0])  # 通过索引访问
print(bicycles[-1])  # 索引为-1时,访问最后一个元素,-2为倒数第二个元素

# P33动手试一试
# 3-1
names = ['A', 'B', 'C']
for name in names:
    print(name)
# 3-2
for name in names:
    print('hello %s' % name)
# 3-3
ways = ['Moto', 'Car', 'Bus']
for way in ways:
    print('I would like to own a %s' % way)


# 2.修改、添加和删除元素
# 2.1修改列表元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print('修改前',motorcycles)
motorcycles[0] = 'ducati'
print('修改后', motorcycles)

# 2.2在列表中添加元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print('添加前:', motorcycles)
motorcycles.append('ducati')
print('在末尾添加后:', motorcycles)

# 2.2.2在列表中插入元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print('添加前:', motorcycles)
motorcycles.insert(0, 'ducati')
print('插入后', motorcycles)


# 2.3从列表中删除元素
# 2.3.1使用del语句删除元素,从列表中删除后,就无法再访问它了
motorcycles = ['honda', 'yamaha', 'suzuki']
print('删除前:', motorcycles)
del motorcycles[0]
print('使用del删除后:', motorcycles)

# 2.3.2使用方法pop()删除元素,会删除最后一个元素,依然能够访问被删除的值
motorcycles = ['honda', 'yamaha', 'suzuki']
print('删除(弹出)前:', motorcycles)
popped_motorcycle = motorcycles.pop()
print('被pop()删除的元素', popped_motorcycle)
print('使用pop()删除后:', motorcycles)
# 2.3.3弹出列表中任何位置的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print('删除(弹出)前:', motorcycles)
first_owned = motorcycles.pop(0)
print('删除(弹出)后:', motorcycles)

# 2.3.4根据值删除元素,使用remove()方法
'''
方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,
就需要使用循环来判断是否删除了所有这样的值。
'''
motorcycles = ['honda', 'yamaha', 'suzuki']
print('删除前:', motorcycles)
motorcycles.remove('honda')
print('删除后:', motorcycles)

# P38动手试一试
# 3-4
famouse_men = ['Newton', 'Jack', 'Polato']
for man in famouse_men:
    print(man)
print("Jack can't join the party.")
famouse_men[1] = 'Mary'
for man in famouse_men:
    print(man)

# 3-6
print('找到了一个更大的餐桌')
famouse_men.insert(0, 'Trump')
famouse_men.insert(2, 'Lucy')
famouse_men.append('LeCunn')
for man in famouse_men:
    print('Hi,%s I hopy you can join the party' % man)

# 3-7
print('I can invite only two men')
men1 = famouse_men.pop()
print('I am so sorry %s, you can not join the party.' % men1)
men2 = famouse_men.pop()
print('I am so sorry %s, you can not join the party.' % men2)
men3 = famouse_men.pop()
print('I am so sorry %s, you can not join the party.' % men3)
men4 = famouse_men.pop()
print('I am so sorry %s, you can not join the party.' % men4)

for man in famouse_men:
    print('%s,you are still invited' % man)

del famouse_men[0]
del famouse_men[0]
print(famouse_men)


# 3.组织列表
# 3.1使用方法sort()对列表进行永久性排序
cars = ['bmw', 'telsa', 'audi', ' toyata']
print('排序前', cars)
cars.sort() # 永久性地修改了列表元素的排列顺序,sort(reverse=True)
print('排序后', cars)

# 3.2使用函数sorted()对列表进行临时排序
cars = ['bmw', 'telsa', 'audi', ' toyata']
print('临时排序前', cars)
print('临时排序后', sorted(cars)) # sorted(cars, reverse=True)
print('顺序依旧不变', cars)

# 3.3倒着打印列表,使用方法reverse(),永久性改变
cars = ['bmw', 'telsa', 'audi', ' toyata']
print('倒着排序前', cars)
cars.reverse()
print('倒着排序后', cars)

# 3.4确定列表的长度
print('长度为', len(cars))

# P41动手试一试
# 3-8
dests = ['American', 'German', 'Austurlia', 'England', 'French']
print('我想去的目的地', dests)
print('用sorted()排序后', sorted(dests))
print('用sorted()反转排序后', sorted(dests, reverse=True))
dests.reverse()
print('使用reverse()反转', dests)
dests.reverse()
print('再次使用reverse()反转', dests)
dests.sort()
print('使用sort()排序后', dests)
dests.sort(reverse=True)
print('使用sort(reverse=True)排序后', dests)

# 3-9
print(len(dests))

# 3-10
animals = ['cat', 'frog', 'dog', 'mice']
print(animals)
animals.append('tiger')
animals.insert(0, 'lion')
animals.pop()
animals[0] = 'pig'
animals.sort()
animals.reverse()
sorted(animals)
print(animals)
animals.remove('cat') ## 记住这个方法,不是animals.remove['cat'],不是animals.remove[0]
del animals[0]
print(animals)


# 3.4使用列表时避免索引错误
motorcycles = ['honda', 'yamaha', 'suzuki']
#print(motorcycles[3])
# 始终使用-1访问列表的最后一个元素,仅当列表为空时,才出错
print(motorcycles[-1])
# 发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值