Python數(shù)組在List中的具體應(yīng)用手冊
Python數(shù)組在使用的時(shí)候有不少的問題需要解決,下面就是在List中Python數(shù)組的三種特有數(shù)據(jù)類型中的一種,希望大家在使用的過程總有所幫助。下面大家就來詳細(xì)的學(xué)習(xí)下吧。#t#
跟數(shù)組很像,支持直接利用下標(biāo)的訪問方式;同時(shí)List的size是可變,這一點(diǎn)又跟ArrayList是十分類似的。但是List就像是包羅萬象的萬花筒,不僅能夠容下對象,同時(shí)也能存放基本的數(shù)據(jù)類型,如整型等。這比Java的ArrayList的裝載能力強(qiáng)多了,在Java中ArrayList是不能存放基本類型的。List除了極強(qiáng)的兼收并包能力,對List中的item進(jìn)行操作的靈活性更是讓人為之振奮。舉個最簡單的例子吧,如果一個數(shù)組中存放著一個整數(shù)數(shù)列,現(xiàn)在想將數(shù)組中大于某個數(shù)值的數(shù)選出來構(gòu)成一個新的數(shù)列。在Java中,恐怕就得這么做了,先構(gòu)造一個類,然后在類中建立一個方法:
- public static int[] select(int[] source, int bound) {
- int[] result = new int[source.length];
- int j = 0;
- for (int i = 0; i < source.length; i++) {
- if (source[i] > bound) {
- result[j] = source[i];
- j++;
- }
- }
- return source;
- }
看著這樣的代碼,您是不是會覺得很不爽呢?本來很簡單的一件事情,怎么需要那么多的代碼,而且還得為返回的數(shù)組作初始化的時(shí)候,準(zhǔn)備多一些空間,如果實(shí)參不是一個int數(shù)組,而是double型的呢?恐怕我得再寫多一個方法了。那么在Python數(shù)組中,又怎么做呢? 很簡單,真的很簡單:
- [item for item in source if item > bound ] (注:source是一個List)
您是不是很驚訝呢?OK,calm down,就是這么簡單。不管source裝著是int,還是double,甚至是string,這行簡單的代碼都能替你把問題搞定。因?yàn)镻ython對這樣的task處理游刃有余,我們根本都不需要將其封裝到一個module中了。
除了這三種特有數(shù)據(jù)類型讓我愛不釋手之外,Python數(shù)組處理String的能力,也讓我為之贊嘆。如果您想將一個String重復(fù)打印幾次,你的Java代碼是不是要這樣寫呢:
- for (int i = 0; i < times; i++)
- System.out.print("Hello ");
在Python中,你只需要這樣:print "Hello " * 5。 噢,'*' 運(yùn)算符都用到String身上了,代碼也因此變得簡單而易懂。Python中字符串類型有一個功能很強(qiáng)大的函數(shù),就是join()。join函數(shù)可以接收具有順序化的變量,如Dictionary、List、Tuple和String。例示如下:
- >>>"+".join("123")
- '1+2+3'
- >>> ";".join(["first", "second", "third"])
- 'first;second;third'
Python數(shù)組的簡約讓我深深的陶醉了,她中和了代碼的枯燥。讓人心煩的代碼因她的存在而變得美妙。您感受到了嗎?