python数据类型2

刚刚提到列表是序列,所有 序列都有几种基本的操作。

>>> st=[1,2,'dflx'];
>>> len(st);
3
>>> df=[6,8,"great"];
>>> st+df
[1, 2, 'dflx', 6, 8, 'great']
>>> df*2;
[6, 8, 'great', 6, 8, 'great']
>>> 6 in df;
True
>>> 2 in df
False

>>> num=[1,2,99,-8];
>>> max(num);
99
>>> min(num);
-8

列表是不能修改的,要增加只能用相关的函数。

>>> num[4]=66;
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> num.append(66);
>>> num
[1, 2, 99, -8, 66]

合并二个列表用 extend(); Help on method_descriptor:

extend(...) L.extend(iterable) -- extend list by appending elements from the iterable

>>> df=[1,2];
>>> lx=[6,8];
>>> df.extend(lx);
>>> df
[1, 2, 6, 8]
>>> lx
[6, 8]

在extend()操作中,被以字符为单位拆开(变成了列表),然后最加到列表中了。

>>> st="dflx";
>>> df.extend(st);
>>> print(df);
[1, 2, 6, 8, 'd', 'f', 'l', 'x']

追加整数会报错,因为extend()的参数必须是可以迭代的。

>>> a=9;
>>> df.extend(a);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

可以得到一个结论,append()是可以整建制的追加,extend()是个体化扩编。

count()函数帮助我们弄清楚,列表中元素重复出现的次数。 Help on method_descriptor:

count(...) L.count(value) -> integer -- return number of occurrences of value

>>> num=[1,6,3,8,5,6,2,1,3,5,1,1,2];
>>> num.count(1);
4
>>> num.count(2);
2
>>> num.count(10);
0

我的python好像见鬼了,在ubuntun中,是python3.5;

>>> num=[];
>>> num
[]

insert(i,x)将元素x插入到i位置。

>>> num.insert(0,'66');
>>> num
['66']
>>> num.insert(2,88);
>>> num;
['66', 88]

remove(x);移除值为x的元素,不存在会报错。

>>> num.remove(88);
>>> num;
['66']
>>> num.remove(0);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

list([i]);元括号里面的[i],表示这个参数是可以选择的,不过不写是默认删除最后一个,并将删除的元素作为返回结果。

>>> num.pop(0);
'66'
>>> num;
[]

reverse(),将列表的元素反序过来 。

>>> ch=['a','b','c'];
>>> ch.reverse();
>>> ch;
['c', 'b', 'a']
sort();对列表进行排序,默认是从小到大。
>>> ch.sort();
>>> ch;
['a', 'b', 'c']

列表和字符串二中类型的对象有许多相似之处,但是也有很大区别。 相同点二者都属于序列类型,不管组成列表的元素,还是组成字符串的元素都可以从左到右,依次建立索引访问。

>>> a=[12,34,56];
>>> a[0];
12
>>> b="abcd";
>>> b[0];
'a'

区别列表是可以修改的,而字符串不变。

>>> a[1]='a';
>>> a.append(9);
>>> a;
[12, 'a', 56, 9]
>>> a.insert(0,666);
>>> a
[666, 12, 'a', 56, 9]
>>> a.remove(12);
>>> a.pop();
9

>>> b[0]='ss';
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

列表和字符串转换。 在一些情况下,通过split()和join()函数 str.split(),可以根据分隔符将字符串转换成列表。

>>> ch="a b c d 12 34 56";
>>> ch.split(" ");
['a', 'b', 'c', 'd', '12', '34', '56']

join可以看成split的逆运算

>>> a=['ab','cd','ef'];
>>> ",".join(a);
'ab,cd,ef'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mukekeheart的iOS之旅

OC学习6——面相对象的三大特性

我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这也是面向对象的三大特征。OC学习篇之---类的三大特性(封装,继承,多态) 1、封装(Enca...

29580
来自专栏javathings

什么是 default 方法

Java 设计者希望能在 List 上提供一个 forEach 方法,例如可以 list.forEach(System.out::println) 而 L...

35520
来自专栏WD学习记录

Python数据结构与算法笔记(2)

栈、队列、deques、列表是一类数据的容器,它们数据项之间的顺序由添加或删除的顺序决定。一旦一个数据项被添加,它相对于前后元素一直保持该位置不变。诸如此类的数...

12510
来自专栏Java3y

泛型就这么简单

17440
来自专栏Golang语言社区

深入分析golang多值返回以及闭包的实现

一、前言 golang有很多新颖的特性,不知道大家的使用的时候,有没想过,这些特性是如何实现的?当然你可能会说,不了解这些特性好像也不影响自己使用golang,...

57560
来自专栏Fish

两天了解scala

最前面的话 因为spark的源语言是scala,所以,为了看懂spark的操作并且为了以后看spark源码做准备,先看scala还是很有必要的。另外这里主要是看...

21390
来自专栏专注 Java 基础分享

java基础之继承(二)

上篇我们介绍了java中的构造方法,了解了关键字this和super在继承中所起到的作用,this可以显式调用重载的构造方法,super可以显式的调用父类中的任...

21380
来自专栏拭心的安卓进阶之路

深入理解 Java 泛型

首先提个问题: Java 泛型的作用是什么?泛型擦除是什么?泛型一般用在什么场景? 如果这个问题你答不上来,那这篇文章可能就对你有些价值。 什么是泛...

63790
来自专栏猿人谷

C++ primer里的template用法

template 的用法     在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中     可以使用多个队列、树、图等结构来组织数据...

23550
来自专栏张善友的专栏

C# 内部类

        C#中的内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,直接看来,外部类对于内部类的作用更像是一个命名空间,在C#中...

26180

扫码关注云+社区

领取腾讯云代金券