python基础-4(列表)

1 技巧

只写列表名---->引用整个列表

len():列表长度,从1开始数

续行字符\

print('当一行代码太长时' + \
      '可以换行')

序列型数据:列表、字符串、由range()返回的范围对象、元组;对列表可以进行的操作(如切片等),都可以对序列型数据进行  

2 索引

从0开始

print(['a', 'b', 'c'][1])
num = ['a', 'b', 'c']
print(num[-1])
print(num[-2])

3 切片

#   切片:左闭右开
num = ['a', 'b', 'c', 'd']

print(num[1:4])
#   省略第一个索引===》使用索引0或者从列表的开始处开始
print(num[:3])
#   省略第二个索引===》使用列表长度
print(num[1:])

4 连接

#   + 可以合并两个列表成一个新列表
nums1 = [1, 2, 3, 4]
nums2 = [4, 5, 6, 7]
print('第一次输出')
print(nums1 + nums2)

num = 5
print('第二次输出')
print(nums1 + [num])

5 复制

#   *可以将列表复制n次
nums1 = [1, 2, 3, 4]
nums2 = [4, 5, 6, 7]
print('第一次输出')
print(nums1*3)

6 从键盘输入列表

#   从键盘输入猫的名字
cat_names = []
while True:
    print('enter name of cat' + ' ' + str(len(cat_names) + 1) + ' ' + 'or enter nothing to exit')
    name = input()
    if name == '':
        break
    cat_names = cat_names + [name]
print('the cat are')
for name in cat_names:
    print(name)

7 列表循环

words = ['baby', 'hello', 'hi', 'good']
print('循环方式一:直接遍历')
for word in words:
    print(word)

print('循环方式二:用下标遍历')
for i in range(len(words)):
    print(words[i])

8 in 和 not in

words = ['baby', 'hello', 'hi', 'good']
print('1')
print('baby' not in words)
print('2')
if 'hi' in words:
    print('**************')

9 多重赋值

words = ['baby', 'hello', 'hi', 'good']
#   变量的数目和列表的长度必须相等
word1, word2, word3, word4 = words
print(word1)
print(word2)
print(word3)
print(word4)

10 方法

列举enumerate()

words = ['baby', 'hello', 'hi', 'good']
#   需要索引+值的时候很方便
#   需要注意 index是int类型,需要进行转换
for index, item in enumerate(words):
    print('第' + str(index) + '个值是' + item)

random.choice()

from random import *

words = ['baby', 'hello', 'hi', 'good']
word = choice(words)
print('从列表中随机选择一个值')
print(word)

random.shuffle()

from random import *

words = ['baby', 'hello', 'hi', 'good']
shuffle(words)
print('把列表的值随机打乱')
print(words)

index()

#   index()方法用于查找值的索引
words = ['baby', 'hello', 'baby', 'hi', 'good']
print('多次出现,则返回第一次出现的索引值')
print(words.index('baby'))

append()

#	返回值是None
words = ['baby', 'hello', 'baby', 'hi', 'good']
print('将元素附加到列表末尾')
print('方法必须跟在要作用的值之后')
words.append('last')
print(words)

insert()

#	返回值是None
words = ['baby', 'hello', 'baby', 'hi', 'good']
print('将元素插入到列表中')
print('方法必须跟在要作用的值之后')
print('第一个参数:要插入的索引值')
print('第二个参数:要插入的值')
words.insert(2, 'second')
print(words)

del

words = ['baby', 'hello', 'baby', 'hi', 'good']
print('用索引删除元素')
del words[0]
print(words)

remove()

words = ['baby', 'hello', 'baby', 'hi', 'good']
print('不知道元素的索引,用remove()')
words.remove('baby')
print(words)

sort()

words = ['baby', 'Hello', 'hello', 'Baby', 'hi', 'good']
print('按ASCII码来排序')
words.sort()
print(words)
print('按普通字典顺序来排序,会把所有元素都当成小写')
words.sort(key=str.lower)
print(words)

reverse()

words = ['baby', 'Hello', 'hello', 'Baby', 'hi', 'good']
print('反转列表的元素顺序')
words.reverse()
print(words)

list()

print('将元组转换为列表')
nums1 = (1, 2, 3, 4)
print('nums1的数据类型' + str(type(nums1)))
nums2 = list(nums1)
print('nums2的数据类型' + str(type(nums2)))

tuple()

print('将列表转换为元组')
nums1 = [1, 2, 3, 4]
print('nums1的数据类型' + str(type(nums1)))
nums2 = tuple(nums1)
print('nums2的数据类型' + str(type(nums2)))

id()及引用

print('改变变量的值,不会改变已经赋值的其他变量')
num1 = 75
print('num1的id')
print(id(num1))
num2 = num1
print('num2的id')
print(id(num2))
num1 = 78
print('改变后num1的id')
print(id(num1))
print('num2的id')
print(id(num2))
print('改变列表的值,会改变已经赋值的其他列表')
nums1 = [45, 25, 11, 33]
nums2 = nums1
print(nums2)
nums1[2] = 100
print('明明改变的是nums1的值,但是nums2的值也改变了')
print(nums2)

copy()1

import copy

print('copy()方法用来复制列表,这样改变复制的列表后,原列表不会发生变化。适用于要保留原列表的情况')
nums1 = [1, 5, 6, 9]
nums2 = copy.copy(nums1)
print('nums2的值为')
print(nums2)
nums1[0] = 55
print('改变了nums1后,nums2的值为')
print(nums2)

deepcopy()

import copy

print('deepcopy()方法用来复制列表,这样改变复制的列表后,原列表不会发生变化。适用于要保留原列表的情况')
print('与copy()方法的区别:当列表中还嵌套了列表,使用deepcopy()方法')
nums1 = [1, 5, 6, 9, [2, 5, 4]]
nums2 = copy.deepcopy(nums1)
print('nums2的值为')
print(nums2)
nums1[0] = 55
print('改变了nums1后,nums2的值为')
print(nums2)

11 元组类型

print('区别一:元组用();列表用[]')
print('区别二:元组中的数据不可变;列表中数据可变')
nums1 = (1, 2, 3, 4)
nums2 = [1, 2, 3, 4]
print('nums1的数据类型'+str(type(nums1)))
print('nums2的数据类型'+str(type(nums2)))

print('-----------------------------------------')
print('如果元组中只有一个值,需要附加一个,')
print('用来和普通的变量区分')
nums3=(2,)
nums4=3
print('nums3的数据类型'+str(type(nums3)))
print('nums4的数据类型'+str(type(nums4)))

课后习题

逗号代码p85

"""
1、接收从键盘输入的列表保存为spam
2、定义函数method(spam):
    拆分出列表的每一项


"""


def method(spam):
    str1 = ''
    spam[-1] = 'and ' + spam[-1]
    for item in spam:
        if item == spam[-1]:
            str1 += item
        else:
            str1 += item + ','
    print(str1)


print('请输入一个列表')
spam = []

while True:
    str0 = input()
    if str0 == '':
        break
    spam = spam + [str0]
method(spam)

掷硬币的连胜

import random

numberOfStreaks = 0
coins = []
for experimentNumber in range(1000):
    coins.append(random.randint(0, 1))
for i in range(995):
    if coins[i] == coins[i + 1] == coins[i + 2] == coins[i + 3] == coins[i + 4] == coins[i + 5]:
        numberOfStreaks += 1
print('chance of streak:%s%%' % (numberOfStreaks / 100))

"""
数组下标
range(10):说明数组中存的0-9,列表下标也是0-9

"""

字符图网格

grid = [['.', '.', '.', '.', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['0', '0', '0', '0', '0', '.'],
        ['.', '0', '0', '0', '0', '0'],
        ['0', '0', '0', '0', '0', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]

for i in range(len(grid[0])):
    for j in range(len(grid)):
        print(grid[j][i] + ' ', end='')
    print()

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值