python_列表笔记

 

目录

1. 列表简介:

2. 列表的创建:

3. 列表的方法:

    3.1 增加、删除

     3.2 列表元素的访问

     3.3 slice切片截取

     3.4 列表的遍历、排序           

     3.5 多维列表


1. 列表简介:

     用来存储任意类型任意数量的数据集合
    内存分析:是一块连续的内存空间,列表中存放的是对象的地址,例如s=[1,'a'],该对象s指向了一块连续的内存空间,内存空间
    中存放的是对象1、对象‘a’的内存地址


2. 列表的创建:


    2.1 定义创建:
        list = [1,2,'s']
    2.2 list()创建,所有能够用来迭代的均可以用这种方式来创建
        list = list() #创建了一个空列表对象
        list = list('wuhengtao') #创建了一个列表对象,内容为w/u/h/e/n/g....
    2.3 range()转化为序列
        list = list(range(0,10,1)) #创建了一个从0到9的列表对象
    2.4 推导式创建列表
        list = [x * 2 for x in range(5)] #意思是,将X值×2,循环0-4的数值
        输出就是0、2、4、6、8
        联合判断语句:
        list = [x * 2 for x in range(100) if x % 9 == 0]
        


3. 列表的方法:

 

常用方法
    list.append(x)             增加元素     将元素X增加到列表的尾部
    list.extend(aList)         增加元素    将列表aList所有元素加到列表list尾部
    list.insert(index,x)    增加元素    在列表指定位置index处插入元素x
    list.remove(x)            删除元素    在列表中删除首次出现的元素x
    list.pop([index])        删除元素    删除并返回list指定位置index处的元素,默认是最后一个元素
    list.clear()            删除所有元素    但不删除列表对象
    list.index(x)            访问元素    返回第一个x的索引位置,如果不存在抛出异常
    list.count(x)            统计        统计x在列表中出现的次数
    len(list)                长度        返回列表中包含元素的个数/长度
    list.reverse()            翻转列表    将列表中的数据原地翻转 1,2,3,4 >>> 4,3,2,1
    list.sort()                排序        列表中的元素原地排序
    list.copy()                浅拷贝        返回列表的浅拷贝数据:
                                        (初步认识,可能不准确)
                                        浅拷贝:对于序列来说,浅拷贝只会拷贝第一层数据,也就是列表的对象对应的连续内存对空地址,并不会将连续内存空间上的具体每一个内存重新创建
                                        深拷贝:拷贝第一层数据的同时,还会拷贝内存空间中每一个内存地址进行重新创建
                                        EXP:
                                            list=[1,2,'a']
                                            #浅拷贝
                                            listCopy = copy.copy(list) #此时,listCopy是一个新对象,但是该对象[1,2,'a']中每一个对象的内存地址还是以前(list中)的
                                            #深拷贝
                                            listDeepCopy = copy.deepcopy(list) #此时,listDeepCopy是一个新对象,并且该对象中的每一个对象也都是新创建的对应了新的内存地址


    3.1 增加、删除


        在操作时,尽量不要在列表的中间进行增加和删除,尽量在尾部。因为列表的中间添加数据时,后面的数据会对内存进行挨个复制进行重新赋值。
        3.1.1 append():在列表的尾部添加元素,是效率最快,最推荐的方式(不会产生新对象)
            a = [10,20]
            a.append(30)
            a = [10,20,30]
        
        3.1.2 +:通过+来拼接列表,但是这种操作会产生很多赋值操作,不建议(产生了新对象)
            a=[10,20] # a是一个对象
            a = a + [30] # [30]又产生了一个对象,并且a+[30]又产生了一个新对象,最终赋值给a,a对象的地址已经发生了改变
            >>>[10,20,30]
        
        3.1.3 extend():原地操作,将目标列表的所有元素添加至本列表的尾部,不产生新对象,适用于两个列表拼接
            a=[10,20]
            a.extend([50,60])
            >>>[10,20,50,60]
        3.1.4 insert():在列表的指定位置插入元素,设计大量列表操作时,尽量避免使用,因为设计到很多赋值操作
            a=[10,20,30]
            a.insert(1,100)
            >>>[10,100,20,30]
        3.1.5 乘法扩展
            a=[10]
            b = a * 3
            >>>b=[10,10,10]
        3.1.6 del删除:实际上是将后面的下标复制然后移动位置
            a=[1,2,5,3,4]
            del a[2]
            >>>[1,2,3,4]
        3.1.7 pop():删除指定位置的元素,并将该元素返回,如果没有指定,默认删除最后一个元素
            a=[10,20,30,40]
            b=a.pop()  #此时b=40 a=[10,20,30]
            c=a.pop(1) #此时指定删除下标为1的元素,c=20, a=[10,30]
        3.1.8 remove(),删除首次出现的制定元素,不是下标,如果不存在则刨出异常
            a=[10,20,30,410]
            a.remove(410) #删除410这个元素


     3.2 列表元素的访问

  对于一个列表元素,我们时常需要进行访问来完成各种操作。

       a = [1,2,3,4,5,6,7,8,9]

       3.2.1 通过下标访问:a[1]=2:访问列表中第二个元素,但是下标不能超过列表长度,否则会抛出异常

       3.2.2 index(): 

                 a.index(5)=4  在列表a中搜索5的首次出现的位置

                 a.index(5,2,8)=4 范围搜索列表a中从第二个元素开始到第八个元素结束,5出现的位置

        3.2.3 count()

                 返回指定元素在列表中出现的次数

                a.count(5)=1   表示5这个元素在列表a中出现了一次

        3.2.4 len()

                返回列表的长度:len(a)=10  表示列表a一共有十个元素

        3.2.5 成员资格判断

                 判断20在列表a中是否存在  20 in a  >>>false

     3.3 slice切片截取

                语法:[start:end:step] --- [开始下标:结束下标:步长]

                注意:截取的结尾下标是不被包含的,即包头不包尾 

                EXP:a=[1,2,3,4,5,6,7]

               a[1,5,1]=[2,3,4,5] 意思是从下标为1开始截取到下标为5的,步长为1

               a[1::2]=[2,4,6]  意思是从第二个开始到结束,步长为2

     3.4 列表的遍历、排序           

             for x in a:

                  print(x)

            排序:a.sort(),即可完成让列表a正序排序并且不会生成新对象

                       a = sorted(a) 这是生成新对象并且完成排序

                       max(a)/min(a)/sum(a) 最大值、最小值、求和(适用于元素类型均为整数时)

     3.5 多维列表

            概念:多维列表就是列表里面的元素也是列表,EXM:table=[1,2,3,[10,20,30],['A','B']]

           可以通过下标的方式进行访问:table[3][0]=10,意思就是访问的table列表的第四个下标值的第0个下标值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


            
            
            
            
            
            
            
            
            
            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,DataFrame 是一种二维表格数据结构,可以使用 pandas 模块进行处理。针对 DataFrame 对象的循环,可以使用 for 循环,以及一些相关的方法。 举个例子,假设有如下的 DataFrame: ``` import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M']} df = pd.DataFrame(data) ``` 如果要遍历这个 DataFrame,可以使用 iterrows() 方法,该方法会返回每一行的索引和数据: ``` for index, row in df.iterrows(): print(index, row['name'], row['age'], row['gender']) ``` 此外,还可以使用 itertuples() 方法,该方法会返回一个命名元组,包含每一行的数据: ``` for row in df.itertuples(): print(row.Index, row.name, row.age, row.gender) ``` 需要注意的是,在循环中使用 DataFrame 的值时,最好使用 loc 或 iloc 方法,以避免引用副本而不是视图。 另外,Python 中的 for 循环还支持 else 分支,表示当循环正常结束时执行的语句。例如: ``` for i in range(3): print(i) else: print('Loop finished') ``` 这段代码会输出: ``` 0 1 2 Loop finished ``` 如果在循环中使用了 break 语句,则不会执行 else 分支。 ### 回答2: 在Python中,DataFrame是pandas库中非常重要和常用的数据结构之一。它类似于电子表格或数据库表格,用于存储和处理二维的带标签数据。可以使用DataFrame来处理大量的数据,并进行各种数据操作和分析。 在DataFrame中使用for循环可以遍历DataFrame中的每一行数据。可以使用iterrows()方法来实现这一点,该方法会返回一个生成器,用于逐行遍历DataFrame。 下面是一个例子,展示如何使用for循环遍历DataFrame中的数据: ``` import pandas as pd # 创建一个包含三列的DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'London', 'Tokyo']} df = pd.DataFrame(data) # 通过for循环遍历DataFrame中的每一行 for index, row in df.iterrows(): print(f"Name: {row['Name']}, Age: {row['Age']}, City: {row['City']}") ``` 这段代码会输出每行数据的姓名、年龄和所在城市。 此外,Python中的for循环还支持else语句。在for循环中,如果没有遇到break语句中断循环,则会执行else语句块的代码。在DataFrame中,可以将else语句用于在循环结束后执行某些特定的操作。例如,可以在遍历DataFrame中的数据时,如果找到了特定的值,就break退出循环,否则执行else语句的代码。 希望以上的回答能对您有帮助。 ### 回答3: dataframe for循环是指在Python使用pandas库中的DataFrame对象进行循环遍历操作。DataFrame是一种二维表格数据结构,类似于Excel中的表格,可以用来存储和处理大量的数据。 在Python中,可以使用for循环遍历DataFrame中的每一行或每一列数据。使用DataFrame的iterrows()方法可以按行遍历数据,其返回的是每一行的索引值和对应的数据。示例如下: ```python import pandas as pd # 创建一个DataFrame data = {'Name': ['Tom', 'John', 'Mike', 'Emily'], 'Age': [25, 32, 18, 27], 'City': ['Beijing', 'London', 'New York', 'Paris']} df = pd.DataFrame(data) # 使用for循环按行遍历DataFrame for index, row in df.iterrows(): print("Index:", index) print("Name:", row['Name']) print("Age:", row['Age']) print("City:", row['City']) print() ``` 此外,还可以使用DataFrame的iteritems()方法按列遍历数据,其返回的是每一列的列名和对应的数据。示例如下: ```python import pandas as pd # 创建一个DataFrame data = {'Name': ['Tom', 'John', 'Mike', 'Emily'], 'Age': [25, 32, 18, 27], 'City': ['Beijing', 'London', 'New York', 'Paris']} df = pd.DataFrame(data) # 使用for循环按列遍历DataFrame for column, data in df.iteritems(): print("Column:", column) print(data) print() ``` 注意:在使用DataFrame进行循环遍历时,要注意保持数据类型的一致性,确保能够正确地处理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值