基础数据类型-list
序列是python中的基础数据结构,序列里每一个元素都有一个下标,从0开始,依次递增.
list,tuple,dictionary是使用最频繁的三类数据结构。
(1)序列都有的方法包括:索引,切片,检查成员,加,乘:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#索引
list_name = ['Paul', 'John', 'James']
print(list_name[1]) #切片
list_number = [1, 1, 2, 3, 4, 5]
print(list_number[1:5]) #检查成员
if 'Joshua' in list_name:
print("Joshua is in list_name")
else:
print("Joshua is not in list_name") #加
print(list_name + list_number) #乘
print(list_name * 2)
Code
John
[1, 2, 3, 4]
Joshua is not in list_name
['Paul', 'John', 'James', 1, 1, 2, 3, 4, 5]
['Paul', 'John', 'James', 'Paul', 'John', 'James']
Result
(2)遍历列表:
#遍历列表
for number in list_number:
print(number)
Code
(3)list的函数有len(),max(),min(),list()
#函数
print(len(list_number))
print(max(list_number))
print(min(list_number))
tuple_number = (1, 3, 5, 7)
print(type(tuple_number), type(list(tuple_number)))#list()强制将序列转化为list类型
Code
6
5
1
<class 'tuple'> <class 'list'>
Result
(4)list的常用方法有
-append(), extend(),insert();
#append(), extend(),insert();
list_number = [1, 1, 2, 3, 4, 5]
list_number.append(7) #在列表末尾添加新的对象
print(list_number)
list_number.extend([10, 11, 12]) #在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
print(list_number)
list_number.insert(1, 99) #list.insert(index, obj)将对象插入列表中index位置
print(list_number)
Code
[1, 1, 2, 3, 4, 5, 7]
[1, 1, 2, 3, 4, 5, 7, 10, 11, 12]
[1, 99, 1, 2, 3, 4, 5, 7, 10, 11, 12]
Result
-remove(),pop(),clear();
#remove(),pop(),clear();
list_number = [1, 1, 2, 3, 4, 5]
list_number.remove(1)#移除列表中某个值的第一个匹配项
print(list_number)
pop_number = list_number.pop(4)#list.pop(obj=list[-1]) 移除列表中的索引位置元素(默认最后一个元素),并且返回该元素的值
print("pop number:", pop_number)
print(list_number)
list_number.clear()#清空列表
print(list_number)
Code
[1, 2, 3, 4, 5]
pop number: 5
[1, 2, 3, 4]
[]
Result
-sort(),reverse();
#sort(),reverse();
list_number = [4, 2, 5, 7, 1, 3]
print(list_number)
list_number.sort() #对原列表进行排序
print(list_number)
list_number.reverse() #反向原列表中元素
print(list_number)
Code
[4, 2, 5, 7, 1, 3]
[1, 2, 3, 4, 5, 7]
[7, 5, 4, 3, 2, 1]
Result
-count(),index(),copy()
#count(),index(),copy()
list_number = [1, 1, 2, 2, 2, 3, 3, 3, 3]
print(list_number.count(3)) #统计某个元素在列表中出现的次数
print(list_number.index(2)) #从列表中找出某个值第一个匹配项的索引位置
print("address of list_number:", id(list_number))
copy_list_number = list_number.copy() #复制列表
print(copy_list_number)
print("address of copy_list_number:", id(copy_list_number))
Code
4
2
address of list_number: 35406832
[1, 1, 2, 2, 2, 3, 3, 3, 3]
address of copy_list_number: 35421720
Result
最后来看下list类的定义:
class list(object):
"""
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
"""
def append(self, p_object): # real signature unknown; restored from __doc__
""" L.append(object) -- append object to end """
pass def count(self, value): # real signature unknown; restored from __doc__
""" L.count(value) -> integer -- return number of occurrences of value """
return 0 def extend(self, iterable): # real signature unknown; restored from __doc__
""" L.extend(iterable) -- extend list by appending elements from the iterable """
pass def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
"""
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0 def insert(self, index, p_object): # real signature unknown; restored from __doc__
""" L.insert(index, object) -- insert object before index """
pass def pop(self, index=None): # real signature unknown; restored from __doc__
"""
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
"""
pass def remove(self, value): # real signature unknown; restored from __doc__
"""
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
"""
pass def reverse(self): # real signature unknown; restored from __doc__
""" L.reverse() -- reverse *IN PLACE* """
pass def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
"""
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
"""
pass
Class List
基础数据类型-list的更多相关文章
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var 定义变量,let定义常量. 比如 ...
- 二、Windows基础数据类型
六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...
- java基础数据类型包装类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
- Python基础数据类型之字典
基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...
- Python基础数据类型之集合以及其他和深浅copy
一.基础数据类型汇总补充 list 在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...
- python基础二(基础数据类型)
一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...
随机推荐
- 继续深入更新shell脚本容易出错的地方
一.在shell中用到如果需要输入某些值,需要用到read -p命令 这是我写的猜数字游戏,一开始在输出的时候,屏幕上总会打印输出 "INT" 经过反复的练习才发现 双引号后面应 ...
- 发送邮箱验证码、session校验
本篇主要描述“发送邮箱验证码.session校验”相关前(html\js)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2.java底层发送 ...
- md5的理解
md5之所以很难破解,是因为它是不可逆的(下面会解释),它是一种散列函数(哈希函数),并且是单向密码体制,即:从明文到密文的不可逆映射,只有加密过程没有解密过程. 为何说是不可逆映射呢?这是因为,md ...
- spring-集成redis
Redis是key-value存储的非关系型数据库.Spring Data Redis包含了多个模板实现,用来完成Redis数据库的数据存取功能 1.如何连接Redis? Spring Data Re ...
- hadoop生态搭建(3节点)-08.kafka配置
如果之前没有安装jdk和zookeeper,安装了的请直接跳过 # https://www.oracle.com/technetwork/java/javase/downloads/java-arch ...
- 从oracle往greenplum迁移,查询性能不满足要求的定位以及调优过程
一.前言 在一次对比oracle和greenplum查询性能过程中,由于greenplum查询性能不理想,因此进行定位分析,提升greenplum的查询性能 二.环境信息 初始情况下,搭建一个小的集群 ...
- 《TCP/IP详解 卷1:协议》系列分享专栏
<TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...
- 单片机-C语言-定义和申明
以下代码是单片机程序,51单片机,编译器为HT-IDE3000, 简单来说 头文件中只能申明, 变量在头文件中申明时,要加上extern 这个关键字用来告诉编译器,变量在其它的文件中定义,为什么要在头 ...
- PTA基础编程题目集7-4 BCD解密
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位.所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12.但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了 ...
- UART学习之路(四)VerilogHDL实现的简单UART,VIVADO下完成仿真
用VerilogHDL实现UART并完成仿真就算是对UART整个技术有了全面的理解,同时也算是Verilog入门了.整个UART分为3部分完成,发送模块(Transmitter),接收模块(Recei ...