广东海洋大学 电子1151 孔yanfei python语言程序设计 第七周

在python中,数据访问模型分为三种,直接存取,序列和映射
对于非容器类的数据类型,都属于直接存取访问;序列的典型代表:tuple, list, string, unicode string, buffer, xrange;映射的典型代表:dict。

Python还有一种叫做容器的数据结构。容器是包含其他对象的任意对象。序列(如元组和列表)和映射(比如字典)就是两类主要的容器。

序列的每个元素有自己的编号(元组可以作为字典的键名),而映射的每个元素则有一个自己的名字(键)。另外还有种容器类型既不是序列也不是映射,叫做集合。

I, 序列的通用操作
1, 索引index

seq = 'sample'
print seq[1]
# a
print seq[-1]
# e

2, 切片slice

seq = 'sample'
print seq[1:4]
# amp
print seq[:]
# sample

注意,上面的操作都省略了步长。

print seq[1:4:2]
# ap

注意下面的用法

print seq[::-1]
#elpmas

这样就完成字符串的翻转

3, 相加

seq1 = 'abcd'
seq2 = ''dfgh
print seq1 + seq2
# abcddfgh

4, 相乘

seq = 'abcd'
print seq*2
# abcdabcd

5, 成员资格

seq = 'abcd'
'bcd' in seq
# True

II, 序列的通用操作函数
1, len
返回序列的长度

seq = 'abcd'
print len(seq)
# 4

2, max, min
返回序列中的最大成员和最小成员

seq = 'abcd'
print max(seq)
print min(seq)
# d
# a

4, sorted
对序列进行排序,返回一个新的序列

Help on built-in function sorted in module __builtin__:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

该函数是builtin中的通用函数。
示例1:对字符串进行排序

seq = 'agde'
print sorted(seq)
# ['a', 'd', 'e', 'g']

示例2:对复杂的list进行排序

la = [[4, 1], [3, 3], [2, 5], [1, 2], [5, 4]]
lsort1 = sorted(la)
lsort2 = sorted(la, key=lambda x:x[1])
lsort3 = sorted(la, cmp=lambda x,y:cmp(x[1], y[1]))
lsort4 = sorted(la, cmp=lambda x,y:cmp(x[1], y[1]), reverse=True)

print(la)
print(lsort1)
print(lsort2)
print(lsort3)
print(lsort4)

# [[4, 1], [3, 3], [2, 5], [1, 2], [5, 4]]
# [[1, 2], [2, 5], [3, 3], [4, 1], [5, 4]]
# [[4, 1], [1, 2], [3, 3], [5, 4], [2, 5]]
# [[4, 1], [1, 2], [3, 3], [5, 4], [2, 5]]
# [[2, 5], [5, 4], [3, 3], [1, 2], [4, 1]]

lsort1没有制定cmp, key, 默认按照list中第一个成员进行排序
lsort2指定key为list中的第二个成员
lsort3指定cmp指教函数为比较list的第二个成员
lsort4使用反转排序
3, sort
上面提到的sorted函数是builtin模块中的通用函数,对于不是immutable的序列,如list,内建了sort函数。
示例:

seq = ['a', 'd', 'g', 'b', 'c']
seq.sort()
print seq
# ['a', 'b', 'c', 'e', 'g']

要注意的是,sorted函数返回一个新的list,但是sort函数直接修改了原来的list。
4, map

map(...)
    map(function, sequence[, sequence, ...]) -> list

    Return a list of the results of applying the function to the items of
    the argument sequence(s). If more than one sequence is given, the
    function is called with an argument list consisting of the corresponding
    item of each sequence, substituting None for missing values when not all
    sequences have the same length. If the function is None, return a list of
    the items of the sequence (or a list of tuples if more than one sequence).

示例

def func(a):
        return a*2

la = list('abcd')
lmap = map(func, la)
print la
print lmap

# ['a', 'b', 'c', 'd']
# ['aa', 'bb', 'cc', 'dd']

如果使用lambda函数,则可以写得更简单

la = list('abcd')
lmap = map(lambda x:x*2, la)

5, filter

filter(...)
    filter(function or None, sequence) -> list, tuple, or string

    Return those items of sequence for which function(item) is true. If
    function is None, return the items that are true. If sequence is a tuple
    or string, return the same type, else return a list.

示例

la = ['abc', 'agd', 'rad', 'ljh']
lfilter = filter(lambda x:'a' in x, la)
print la
print lfilter

上面的例子将不包含字母‘a’的元素过滤掉

6, reduce

reduce(...)
    reduce(function, sequence[, initial]) -> value

    Apply a function of two arguments cumulatively to the items of a sequence,
    from left to right, so as to reduce the sequence to a single value.
    For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
    ((((1+2)+3)+4)+5). If initial is present, it is placed before the items
    of the sequence in the calculation, and serves as a default when the
    sequence is empty.

示例

la = ['abc', 'agd', 'rad', 'ljh']
vreduce = reduce(lambda x,y:x+y, la)
print la
print vreduce
# ['abc', 'agd', 'rad', 'ljh']
# abcagdradljh

在上面的例子中,执行了这样的操作:abc与agd相加, 结果再与rad相加,结果再与ljh相加。
上面的例子中永乐lambda,实际上,在这种情况下,可以使用operator。

NAME
operator - Operator interface.
FILE
(built-in)
DESCRIPTION
This module exports a set of functions implemented in C corresponding
to the intrinsic operators of Python. For example, operator.add(x, y)
is equivalent to the expression x+y. The function names are those
used for special methods; variants without leading and trailing
'__' are also provided for convenience.

示例:

import operator

ln = [1, 2, 3, 4]
result = reduce(operator.mul, ln)

在这个例子中,使用operator.mul代替了lambda x,y:x*y。如description,operator.mul(x,y)与x*y

7, reversed

reversed(sequence) -> reverse iterator over values of the sequence
Return a reverse iterator

reversed函数用于将一个序列反转,返回一个iterator。注意,这里并不返回一个序列。所以,如果要使用reversed反转一个序列,应写成:

a = range(10)
b = [x for x in reversed(a)]

8, sum
对序列的所有成员求和。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以前和大家分享过SIGMOD2009的论文,朋友们都很感兴趣,现手里有SIGMOD211的全部论文,再次和大家分享~ 一个包放不下,一共分成了3个包,包含百余篇论文,朋友们可以挑选自己感兴趣的部分下载,我尽量把文章目录写得明白一些。 这是第一部分。 Session 1: Databases on New Hardware LazyFTL: A Page-Level Flash Translation Layer Optimized for NAND Flash Memory (Page 1) Dongzhe Ma (Tsinghua University) Jianhua Feng (Tsinghua University) Guoliang Li (Tsinghua University) Operation-Aware Buffer Management in Flash-Based Systems (Page 13) Yanfei Lv (Peking University) Bin Cui (Peking University) Bingsheng He (Nanyang Technological University) Xuexuan Chen (Peking University) SkimpyStash: RAM Space Skimpy Key-Value Store on Flash-based Storage (Page 25) Biplob Debnath (EMC Corporation) Sudipta Sengupta (Microsoft Research) Jin Li (Microsoft Research) Design and Evaluation of Main Memory Hash Join Algorithms for Multi-Core CPUs (Page 37) Spyros Blanas (University of Wisconsin-Madison) Yinan Li (University of Wisconsin-Madison) Jignesh M. Patel (University of Wisconsin-Madison) (Return to Top) Session 2: Query Processing and Optimization Query Optimization Techniques for Partitioned Tables (Page 49) Herodotos Herodotou (Duke University) Nedyalko Borisov (Duke University) Shivnath Babu (Duke University) CrowdDB: Answering Queries with Crowdsourcing (Page 61) Michael J. Franklin (University of California, Berkeley) Donald Kossmann (ETH Zurich) Tim Kraska (University of California, Berkeley) Sukriti Ramesh (ETH Zurich) Reynold Xin (University of California, Berkeley) Skyline Query Processing Over Joins (Page 73) Akrivi Vlachou (Norwegian University of Science and Technology (NTNU)) Christos Doulkeridis (Norwegian University of Science and Technology (NTNU)) Neoklis Polyzotis (UC Santa Cruz) Efficient Parallel Skyline Processing Using Hyperplane Projections (Page 85) Henning Köhler (The University of Queensland) Jing Yang (Renmin University of China) Xiaofang Zhou (The University of Queensland & Renmin University of China) (Return to Top) Session 3: Schema Mapping and Data Integration Scalable Query Rewriting: A Graph-Based Approach (Page 97) George Konstantinidis (Information Sciences Institute / University of Southern California) José Luis Ambite (Information Sciences Institute / University of Southern California) Automatic Discovery of Attributes in Relational Databases (Page 109) Meihui Zhang (National University of Singapore) Marios Hadjieleftheriou (AT&T Labs - Research) Beng Chin Ooi (National University of Singapore) Cecilia M. Procopiuc (AT&T Labs - Research) Divesh Srivastava (AT&T Labs - Research) Leveraging Query Logs for Schema Mapping Generation in U-MAP (Page 121) Hazem Elmeleegy (AT&T Labs - Research) Ahmed Elmagarmid (Qatar Computing Research Institute, Qatar Foundation) Jaewoo Lee (Purdue University) Designing and Refining Schema Mappings via Data Examples (Page 133) Bogdan Alexe (University of California, Santa Cruz) Balder ten Cate (University of California, Santa Cruz) Phokion G. Kolaitis (University of California, Santa Cruz and IBM Research - Almaden) Wang-Chiew Tan (IBM Research - Almaden and University of California, Santa Cruz) (Return to Top) Session 4: Data on the We Apples and Oranges: A Comparison of RDF Benchmarks and Real RDF Datasets (Page 145) Songyun Duan (IBM Research - T.J. Watson Research Center) Anastasios Kementsietsidis (IBM Research - T.J. Watson Research Center) Kavitha Srinivas (IBM Research - T.J. Watson Research Center) Octavian Udrea (IBM Research - T.J. Watson Research Center) Efficient Query Answering in Probabilistic RDF Graphs (Page 157) Xiang Lian (Hong Kong University of Science and Technology) Lei Chen (Hong Kong University of Science and Technology) Facet Discovery for Structured Web Search: A Query-Log Mining Approach (Page 169) Jeffrey Pound (University of Waterloo) Stelios Paparizos (Microsoft Research) Panayiotis Tsaparas (Microsoft Research) Schema-As-You-Go: On Probabilistic Tagging and Querying of Wide Tables (Page 181) Meiyu Lu (National University of Singapore) Divyakant Agrawal (University of California at Santa Barbara) Bing Tian Dai (National University of Singapore) Anthony K. H. Tung (National University of Singapore) (Return to Top) Session 5: Data Privacy and Security No Free Lunch in Data Privacy (Page 193) Daniel Kifer (Penn State University) Ashwin Machanavajjhala (Yahoo! Research) TrustedDB: A Trusted Hardware Based Database with Privacy and Data Confidentiality (Page 205) Sumeet Bajaj (Stony Brook University) Radu Sion (Stony Brook University) Differentially Private Data Cubes: Optimizing Noise Sources and Consistency (Page 217) Bolin Ding (University of Illinois at Urbana-Champaign) Marianne Winslett (Advanced Digital Sciences Center & University of Illinois at Urbana-Champaign) Jiawei Han (University of Illinois at Urbana-Champaign) Zhenhui Li (University of Illinois at Urbana-Champaign) iReduct: Differential Privacy with Reduced Relative Errors (Page 229) Xiaokui Xiao (Nanyang Technological University) Gabriel Bender (Cornell University) Michael Hay (Cornell University) Johannes Gehrke (Cornell University) (Return to Top) Session 6: Data Consistency and Parallel DB A Latency and Fault-Tolerance Optimizer for Online Parallel Query Plans (Page 241) Prasang Upadhyaya (University of Washington) YongChul Kwon (University of Washington) Magdalena Balazinska (University of Washington) ArrayStore: A Storage Manager for Complex Parallel Array Processing (Page 253) Emad Soroush (University of Washington) Magdalena Balazinska (University of Washington) Daniel Wang (SLAC National Accelerator Laboratory) Fast Checkpoint Recovery Algorithms for Frequently Consistent Applications (Page 265) Tuan Cao (Cornell University) Marcos Vaz Salles (Cornell University) Benjamin Sowell (Cornell University) Yao Yue (Cornell University) Alan Demers (Cornell University) Johannes Gehrke (Cornell University) Walker White (Cornell University) Warding off the Dangers of Data Corruption with Amulet (Page 277) Nedyalko Borisov (Duke University) Shivnath Babu (Duke University) Nagapramod Mandagere (IBM Almaden Research) Sandeep Uttamchandani (IBM Almaden Research) (Return to Top) Session 7: Service Oriented Computing, Data Management in the Cloud Schedule Optimization for Data Processing Flows on the Cloud (Page 289) Herald Kllapi (University of Athens) Eva Sitaridi (University of Athens) Manolis M. Tsangaris (University of Athens) Yannis Ioannidis (University of Athens) Zephyr: Live Migration in Shared Nothing Databases for Elastic Cloud Platforms (Page 301) Aaron J. Elmore (University of California, Santa Barbara) Sudipto Das (University of California, Santa Barbara) Divyakant Agrawal (University of California, Santa Barbara) Amr El Abbadi (University of California, Santa Barbara) Workload-Aware Database Monitoring and Consolidation (Page 313) Carlo Curino (Massachusetts Institute of Technology) Evan P. C. Jones (Massachusetts Institute of Technology) Samuel Madden (Massachusetts Institute of Technology) Hari Balakrishnan (Massachusetts Institute of Technology) Predicting Cost Amortization for Query Services (Page 325) Verena Kantere (Cyprus University of Technology) Debabrata Dash (ArcSight) Georgios Gratsias (ELCA Informatique SA) Anastasia Ailamaki (École Polytechnique Fédérale de Lausanne) Performance Prediction for Concurrent Database Workloads (Page 337) Jennie Duggan (Brown University) Ugur Cetintemel (Brown University) Olga Papaemmanouil (Brandeis University) Eli Upfal (Brown University) (Return to Top) Session 8: Spatial and Temporal Data Management Reverse Spatial and Textual k Nearest Neighbor Search (Page 349) Jiaheng Lu (Renmin University of China) Ying Lu (Renmin University of China) Gao Cong (Nanyang Technological University) Location-Aware Type Ahead Search on Spatial Databases: Semantics and Efficiency (Page 361) Senjuti Basu Roy (University of Texas at Arlington) Kaushik Chakrabarti (Microsoft Research) Collective Spatial Keyword Querying (Page 373) Xin Cao (Nanyang Technological University) Gao Cong (Nanyang Technological University) Christian S. Jensen (Aarhus University) Beng Chin Ooi (National University of Singapore) Finding Semantics in Time Series (Page 385) Peng Wang (Fudan University & Microsoft Research Asia) Haixun Wang (Microsoft Research Asia) Wei Wang (Fudan University) Querying Contract Databases Based on Temporal Behavior (Page 397) Elio Damaggio (University of California, San Diego) Alin Deutsch (University of California, San Diego) Dayou Zhou (University of California, San Diego) (Return to Top) Session 9: Shortest Paths and Sequence Data Neighborhood-Privacy Protected Shortest Distance Computing in Cloud (Page 409) Jun Gao (Peking University) Jeffery Xu Yu (Chinese University of Hong Kong) Ruoming Jin (Kent State University) Jiashuai Zhou (Peking University) Tengjiao Wang (Peking University) Dongqing Yang (Peking University) On k-Skip Shortest Paths (Page 421) Yufei Tao (Chinese University of Hong Kong) Cheng Sheng (Chinese University of Hong Kong) Jian Pei (Simon Fraser University) Finding Shortest Path on Land Surface (Page 433) Lian Liu (The Hong Kong University of Science and Technology) Raymond Chi-Wing Wong (The Hong Kong University of Science and Technology) WHAM: A High-Throughput Sequence Alignment Method (Page 445) Yinan Li (University of Wisconsin-Madison) Allison Terrell (University of Wisconsin-Madison) Jignesh M. Patel (University of Wisconsin-Madison) A New Approach for Processing Ranked Subsequence Matching Based on Ranked Union (Page 457) Wook-Shin Han (Kyungpook National University) Jinsoo Lee (Kyungpook National University) Yang-Sae Moon (Kangwon National University) Seung-won Hwang (Pohang University of Science and Technology) Hwanjo Yu (Pohang University of Science and Technology) (Return to Top) Session 10: Data Provenance, Workflow and Cleaning Interaction Between Record Matching and Data Repairing (Page 469) Wenfei Fan (University of Edinburgh & Harbin Institute of Technology) Jianzhong Li (Harbin Institute of Technology) Shuai Ma (Beihang University) Nan Tang (University of Edinburgh) Wenyuan Yu (University of Edinburgh) We Challenge You to Certify Your Updates (Page 481) Su Chen (National University of Singapore) Xin Luna Dong (AT&T Labs-Research) Laks V.S. Lakshmanan (University of British Columbia) Divesh Srivastava (AT&T Labs-Research) Labeling Recursive Workflow Executions On-the-Fly (Page 493) Zhuowei Bao (University of Pennsylvania) Susan B. Davidson (University of Pennsylvania) Tova Milo (Tel Aviv University) Tracing Data Errors with View-Conditioned Causality (Page 505) Alexandra Meliou (University of Washington) Wolfgang Gatterbauer (University of Washington) Suman Nath (Microsoft Research) Dan Suciu (University of Washington) (Return to Top) Session 11: Information Extraction Hybrid In-Database Inference for Declarative Information Extraction (Page 517) Daisy Zhe Wang (University of California, Berkeley) Michael J. Franklin (University of California, Berkeley) Minos Garofalakis (Technical University of Crete) Joseph M. Hellerstein (University of California, Berkeley) Michael L. Wick (University of Massachusetts, Amherst) Faerie: Efficient Filtering Algorithms for Approximate Dictionary-Based Entity Extraction (Page 529) Guoliang Li (Tsinghua University) Dong Deng (Tsinghua University) Jianhua Feng (Tsinghua University) Joint Unsupervised Structure Discovery and Information Extraction (Page 541) Eli Cortez (Universidade Federal do Amazonas) Daniel Oliveira (Universidade Federal do Amazonas) Altigran S. da Silva (Universidade Federal do Amazonas) Edleno S. de Moura (Universidade Federal do Amazonas) Alberto H. F. Laender (Universidade Federal de Minas Gerais) Attribute Domain Discovery for Hidden Web Databases (Page 553) Xin Jin (George Washington University) Nan Zhang (George Washington University) Gautam Das (University of Texas at Arlington) (Return to Top) Session 12: Keyword Search and Ranked Queries Keyword Search Over Relational Databases: A Metadata Approach (Page 565) Sonia Bergamaschi (University of Modena and Reggio Emilia, Italy) Elton Domnori (University of Modena and Reggio Emilia, Italy) Francesco Guerra (University of Modena and Reggio Emilia, Italy) Raquel Trillo Lado (University of Zaragoza) Yannis Velegrakis (University of Trento) Sharing Work in Keyword Search Over Databases (Page 577) Marie Jacob (University of Pennsylvania) Zachary Ives (University of Pennsylvania)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值