python编程快速上手——列表

目录

常规操作:列表

常规操作:元组

例题1:

例题2:


该博客主要作用是归纳总结,没有太多的解释概念。(文中的特殊字符表省略,可随意替换为其它字符)

常规操作:列表

1.使用下标取得列表中的单个值:

>>>lesson=[math,chinese,english]
>>>lesson[0]
>>>math

在使用下标时,该列表第一个值的下标为0或-3,第二个值为1或-2,第三个值为2或-3

2.使用切片取得字列表:spam[*:#]

第一个值整数是切片开始的下标,第二个整数是切片结束时的下标,但并不包括它(后者)。

3.取得列表长度:len(lesson)

4.合并列表使用”+“,删除列表值使用del。

5.列表用于循环:for i in range(len(lesson))

6可使用in或not in操作符判断一个值是否在该列表当中:’a‘ in [*,!,<,@,<,#]

7.多重赋值;

>>>a=['b','c','d']
>>>f,g,h=a
>>>f
>>>'b'

8.在列表中查找值:lesson.index()

若存在这个值,就会返回它的下标值,否则返回ValueError

9.在列表中添加值:append()方法会在该列表末尾添加值

insert(x,*)方法会在该列表下标为x的地方插入*。

10.从列表中删除值,remove()

11.排序,使用sort()方法可以将数据正向排序,加入关键字后有sort(reverse=Ture)即变为逆向排序。

常规操作:元组

元组的数据类型是不可改变的,元组不能让它的值被修改添加或删除。

1.转换类型

从元组转换到列表,list();从列表转换到元组,tuple()

2.引用

>>> spam = [0, 1, 2, 3, 4, 5]
 >>> cheese = spam
 >>> cheese[1] = 'Hello!'
>>> spam
[0, 'Hello!', 2, 3, 4, 5]
>>> cheese
[0, 'Hello!', 2, 3, 4, 5]

这里两个列表的值同时改变,是因为第二行spam的值是复制到了cheese当中,此时的值均指向了同一个列表。

3.要避免上述问题,应该使用copy()函数,

>>> import copy
>>> spam = ['A', 'B', 'C', 'D']
>>> cheese = copy.copy(spam)
>>> cheese[1] = 42
>>> spam
['A', 'B', 'C', 'D']
>>> cheese
['A', 42, 'C', 'D']

如果想要复制的列表包含了它的列表,则使用deepcopy()代替。

例题1:

假定有下面这样的列表:
spam = ['apples', 'bananas', 'tofu', 'cats']
编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所
有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入 and 。例如,将
前面的 spam 列表传递给函数,将返回 'apples, bananas, tofu, and cats' 。但你的函数应
该能够处理传递给它的任何列表。
ef fly(list):
    string=''
    for i in range (0,len(list)):
        if i ==(len(list))-2:
            string+=list[i]+',and'+' '
        elif i<len(list)-2:
            string+=list[i]+','
        else :
            string+=list[i]
    return string
list=[]
print('请输入列表值并且已end为结尾')
while True:
    value=input()
    if value=='end':
        break
    else:
        list.append(value)
s=fly(list)
print(s)

在这里要注意几点;

首先第一个循环结构的第二行应使用elif,而不是if,因为如果是if的话,在执行完第一个if之后,就会直接跳到else里,可以自己去试着调试一下。

第二个就是自己的输入方式,可能有的人尝试运行输入之后没有结果,这是因为没有使用正确的输入方式,应该如下图输出

 在这里得到了一个新的判断方式,如果自己输出没有结果,就去单步调试一下,如果调试有输出,那就是自己的输入方式错误了。

例题2:

 

def zuobiao(grid):
    for j in range (len(grid[0])):
        for i in range (len(grid)):
            print(grid[i][j],end='')
        print('\n')
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]

zuobiao(grid)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值