本人学习主要从《python基础教程第二版》,《dive into python3》等书籍,及一些网上大牛的博客中学习
特别是Python官方文档《Python Tutorial》
主要有博客:
廖雪峰Python教程  VameiPython快速教程
以及从其他博客中学习一些部分。
  如:
AstralWind :Python正则表达式指南
这些博客都令我受益匪浅,写这个系列的博客主要是当前的python3相关教程较少(虽然和python2差别不大),我其实主要是作为一个小翻译将其改为python3代码。
而写这个博客目的其实是个人的对于python的学习之用,可能不适合阅读。或许更像一个字典用来查询。
此外,博客主要内容对于叙述方面较少,只是给出用法以及解释,所以适合有编程相关基础的读者浏览。 python提供了很多数据结构,不过其很多操作都是朴素操作,速度慢
时间复杂度参见:https://wiki.python.org/moin/TimeComplexity
可遍历(for): list, string,
判断元素是否存在(in): list, string, tuple
合并: list, string
元素个数(len())
元素和(sum())

string(字符串)

    word = 'banana'
特点: 不可变的列表
  详细见:Python 学习第二弹 字符串String

list(列表)

    a = [, 'abc', [a, b, c]]
特点: 列表有顺序
操作:
查询:
a[l:r](返回该区间的列表)
a[l:r:k](返回[l, r-]区间中 步长为k的元素列表)
插入:
a.append(b)(尾部插入值b)
删除:
del a[i](删除下标为i或者一段区间的元素)
比较:(以字典序来比较,返回True or False)
a == b
a < b
分片操作:
a[l:r] = b (将[l,r-]区间序列替换为序列b 长度不必相同) ADD:
列表方法:(一般是对于列表,字符串等适用的方法)
a = list();
> a.append(x) 在末尾添加元素x
> a.cound(x) 统计元素x出现次数
> a.extend(b) 在末尾添加列表b,相当于a = a + b
> a.index(x) 返回第一个元素为x的下标
> a.insert(loc, x) 在loc下标处加入元素x
> a.pop(loc) 删除下标为loc的元素,若无loc默认最后一个
> a.remove(x) 删除第一个值为x的元素
> a.reverse() 将列表a反向存放
> a.sort() 将列表a进行排序
此外sort(key, reverse)可以对排序提供比较函数和是否反向排序

>>>a = ['aa', 'b', 'ccc']
>>>a.sort(key = len, reverse = True) #按字符串长度比较
key为比较的对象,默认从小到大排序,若从大到小只需reverse = True

dict(字典)

    dic = {}
dic = {'one': 'uno', 'two': 'dos', 'three': 'tres'}
特点: 每一项为一个键值对,每个键唯一
操作:
查询:
dic['one'](返回指定键的键值)
dic.keys()(返回dic所有键的列表)
dic.values()(返回dic所有键值的列表)
dic.items()(返回dic所有的键值对(二元组表示)的列表)
插入:
dic[a] = b(插入(a,b)的键值对)
删除:
dic.pop(i,j)(删除以i为下标的键值对 若不存在返回j)
dic.clear()(清空字典)
del dic[b](删除以b为键的键值对)

tuple(元组):

    t = (,)(区别出表示元组而非数字)
t = (, 'a', [,])
特点:不可变
操作:
查询:
dic[l:r](返回l到r-1的元组)
dic.index(b)(返回值为b的下标)
用法:
a, b = b, a (a b交换赋值)
(, ) < (, ) (类似字典序方法比较大小)

set(集合):

    s = {,} #区别出这是集合而非字典
s = set('spam')
s = set(['a', 'b'])
特点: 无重复
操作:
查询:
a in s (返回a是否存在于s集合)
s|t s.union(t)(返回s和t并集)
s&t s.intersection(t)(返回s和t交集)
s-t s.difference(t)(返回s中有t没有的元素集合)
插入:
s.add(a)(插入元素a)
删除:
s.pop()(删除随机一元素)
s.remove(a)(删除元素a)
s.clear()(清空集合s)

  

 

Python3 学习第一弹:基本数据类型的更多相关文章

  1. Office宏病毒学习第一弹--恶意的Excel 4.0宏

    Office宏病毒学习第一弹--恶意的Excel 4.0宏 前言 参考:https://outflank.nl/blog/2018/10/06/old-school-evil-excel-4-0-ma ...

  2. Python学习第一弹——Python环境搭建

    一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有 ...

  3. Python3学习笔记03-基础数据类型

    Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...

  4. Python 学习 第一篇:数据类型(数字,集合,布尔类型,操作符)

    Python语言最常用的对象是变量和常量,常量的值是字面意思,其值是不可变的,变量的值是可变的,例如,123,"上海"是常量,而a=1,a=2,其中a是变量名.内置的核心数据类型有 ...

  5. Python3 学习第一天总结

    一.python介绍 1.python是一门动态解释性的强类型定义语言: 简单解释一下: 定义变量不需要定义类型的为动态语言:典型的有Python和Ruby,反之定义变量需要定义类型的为静态语言:典型 ...

  6. Python学习第一弹

    开发语言: 高级:Python.java.PHP  C#   GO  ruby   C++           ——>字节码   低级:C.汇编                          ...

  7. Python3 学习第二弹: 字符串String

    字符串表示问题 常见用法 '' 与 "" 就不提了 一些特殊用法 三引号:接收多行字符串的输入 >>>print('''Oh my God!''') Oh my ...

  8. Java高精度学习第一弹

    为了快速解决高精度问题,总算是要来接触java了,算上这学期要开java的课了,好好学习吧! 拿来练手的是hdu的1002,高精度加法. import java.util.*; import java ...

  9. css学习の第一弹—格式创建

    构成结构:选择符(又称为选择qi器){声明(属性:值):}*****注意:大括号,冒号,每个声明后的分号. 注释:/*注释内容写在这里*/ 一.css样式 css样式写的地方的不同分类:内联式.嵌入式 ...

随机推荐

  1. svn:Repository UUID 'XXX' doesn't match expected UUID 'YYY'

    About a month ago, CodePlex have upgraded their TFS servers to to TFS 2010. While this transition wa ...

  2. UAP如何根据DeviceFamily显示不同的页面

    背景 微软推出UAP 推荐使用响应式的UI,但是难免遇到一些特殊情况需要使用不同的Page来在不同的设备显示. 微软目前最新的VS2015在10074上安装后能够支持这个功能特性,只是暂时没有文档介绍 ...

  3. 那些我用过的Android开源项目

    1.RefreshActionItem 基于ActionBarSherlock库的一个扩展,在标题栏右边显示多种刷新效果的UI按钮. 项目主页: https://github.com/ManuelPe ...

  4. android编程常见问题-程序在模拟器中不显示

    新手编程常见问题: 问题表现:程序运行成功,但是在模拟器中不显示 解决办法:检查项目版本和模拟器版本是否匹配或兼容,如果不匹配,选择和模拟器版本一致 项目版本:右键-Properties-androi ...

  5. SVN 安装配置

    1,软件下载 到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择Apache 2.2 或者 Apache 2.4,这样 ...

  6. 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。

    // test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  7. Kafka之Purgatory Redesign Proposal (翻译)

    Purgatory是Kafka server中处理请求时使用的一个重要的数据结构.正好研究ReplicaManager源码的时候发现了这篇文章,顺便翻译下.由于这个proposal里的很多东西需要看源 ...

  8. 解谜谷歌 DevOps:什么特质可以打造世界级可靠系统?

    [编者按]本文是 Gene Kim 总结自对 Randy Shoup 两个小时的采访,主要关注谷歌 DevOps 的提升之道.本文系 OneAPM联合高效运维编译整理. Randy Shoup 曾协助 ...

  9. TCP/IP协议栈与数据包封装+TCP与UDP区别

    ISO制定的OSI参考模型的过于庞大.复杂招致了许多批评.与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用.如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图. T ...

  10. maven_Error building POM (may not be this project's POM)错误

    如果maven项目在执行编译等操作时报如题错误的话,请仔细检查pom.xml,一般是由pom的语法错误导致的,例如我的项目是因为: dependencies 元素下不应该有properties元素导致 ...