python如何定义数组

Python057

python如何定义数组,第1张

Python数组还有一个变态的使用方法,就是调用时可以不按参数顺序,对于我们掌握怎样正确创建Python数组是很有帮助的,而且也可从中学到不少编程技巧,例如委托和模板方法。希望大家一起研究下。在ubuntu中,更加是必须的一种脚本引擎,所以有必要去学习一下,这里的文章只针对有一定编程基础,最好是比较熟悉php或javascript的用户,如果没任何基础的新手建议找更详细的教程去学习。Python数组的变量是不需要定义的,这方面和php一样,它比javascript还是宽松,不过它是用缩进作为段落标识的,作为习惯了C语言风格语法的人,可能一开始会很不习惯使用。但细一想,其实也是很正常,很合理的。虽然Python在面向过程/面向对象方面也是很宽松,但实际上一般的程序都是一个主入口。然后不断调用其它类库或函数,所以用缩进的方式并无不妥,那样一方面要求用户写代码时要规范,另一方面反向省去了多余的{}。与C语言风格相比,Python主要语法特点而下:变量、字符串在python中,所有变量都是对象,数组其实是一个链表,并且可以进行相应的链表操作。对于普通数据类型,定义/赋值方法都是一样的,这里不作介绍,python的字符串方面有些特别,这里介绍一下。python对字符串用

[']["]

括起含义是一样的,同样对特殊字符使用

[\]

进行转义不过它有一个很特别的语法就是:[''']三引号,它用于括起分多行的字符串,实际是这也可以作为它的多行注解,如:#!/usr/bin/python

#python

source

class

python:

def

Hello(self):

print

'Hello'

def

count(n):

in=0

while(in<=n):

inin=in+1

print

in

//buile

by

G++

or

VC++

//C++

Source

#include

<iostream>

int

main()

{

class

python

{

public:

void

Hello(void)

{

cout<<"Hello"<<endl

}

void

count(int

n)

{

int

in=0

while(in<=n)

{

inin=in+1

cout<<in<<endl

}

}

}

return

0

}

python数组实际不是数组,而是一个list对象,如果要参考它的用法,可以参考这个对象的方法。需要注意的是,python数组实际是一个链表,因此定义后不能像php之类语言一样,直接在后面追加元素,而是需要用操作链表的方法操作。在上述例子中:如果用

arr[2]

=

'ccccc'

可以改变第三个元素的值,但如果用

arr[3]

=

'dddd'

增加一个元素是会指错的,应该用:arr.append('ddddd')

arr.insert(任意位置,

'dddd')

增加元素。对于多维数组,定义方式为:

arr

=

[[]]

*

3

它定义的是:[[],

[],

[]],也可以用

arr

=

[[]

for

i

in

range(3)]

对于数组和字符串等常用操作,后面会有一章专门介绍,这里就不在列举更多的使用方法。python数组实际不是数组,而是一个list对象,如果要参考它的用法,可以参考这个对象的方法。需要注意的是,python数组实际是一个链表,因此定义后不能像php之类语言一样,直接在后面追加元素,而是需要用操作链表的方法操作。在上述例子中:如果用

arr[2]

=

'ccccc'

可以改变第三个元素的值,但如果用

arr[3]

=

'dddd'

增加一个元素是会指错的,应该用:arr.append('ddddd')

arr.insert(任意位置,

'dddd')

增加元素。对于多维数组,定义方式为:

arr

=

[[]]

*

3

它定义的是:[[],

[],

[]],也可以用

arr

=

[[]

for

i

in

range(3)]

对于数组和字符串等常用操作,后面会有一章专门介绍,这里就不在列举更多的使用方法。

视情况而定

若数组是追加一个元素的可以不用定义长度;

若初始化一个列表然后要修改其中的值的话,就要定义长度了。

例:

拓展资料

设计定位

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。

在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。

Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。

因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。”

参考资料:百度百科--Python

关于数组切片的解析:

① [i]、[-1];

② [:-1]、[:n]、[n:]、[n:m]、[:];

③ [n: m: x]、[: : x]、[: : ]、[-1: : ]、[: -1:]、[: :-1]

④ [a,b]、[a1:a2, b1:b2]

(-1在此相当于len(A)-1,即从首项至下标为 (len(A)-1)-1 的元素)

(-1在此相当于len(A)-1,即从下标为 len(A)-1 的元素至最后一项元素,实际上就是最后一项元素)

n和m都缺省时,范围为整个数组,元素的选择取决于步长

x为-1时,取步长为1的倒序

a表示取第一维的下标为a的元素,b表示取第二维的下标为b的元素

a1:a2表示取第一维的下标为a1至a2-1的数组切片;

b1:b2表示取第二维的下标为b1至b2-1的数组切片。

当A[a1:a2, b1:b2]中有数值缺省时,规则同一维数组。

此外,更高维数组的切片以此类推。