① 定义函数对列表进行顺序翻转,不使用reverse等现有方法
摘要 a = [1,2,3,4,5], 现需要进行对a进行反转
② python的问题小白
根据我个人的经验,你应该是理解错了reverse这个方法的用法,根据你这里的代码输出结果来看,cars.reverse()的作用只是把cars这个列表里的元素顺序翻转一下,然后就结束了,这个函数执行以后返回值是None,并不是返回翻转以后数组。所以你在输出cars列表的时候,能够看到这个列表里的元素顺序发生了变化。但是第二次执行cars.reverse()的时候,它又将cars这个列表翻转了一次,然后返回执行的结果None,被print()方法输出,就是你看到的第二个输出值。
如果这个时候你再输出一次cars,你会发现这个列表又恢复了原样。
不知道我说清楚了没有。希望可以帮助到你。
③ python怎么将数字反转后输出
可以将数字转换成字符串,字符串反转之后再进行反转输出,例如:
a=12345
将a转换成字符串并反转
b=str(a)[-1:]
之后就在将b转换成数字就行
c=int(b)
④ python中怎样让数据列转置
需求:
你需要转置一个二维数组,将行列互换.
讨论:
你需要确保该数组的行列数都是相同的.比如:
arr = [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
列表递推式提供了一个简便的矩阵转置的方法:
print [[r[col] for r in arr] for col in range(len(arr[0]))]
[[1, 4, 7, 10], [2, 5, 8, 11],[3, 6, 9, 12]]
另一个更快和高级一些的方法,可以使用zip函数:
print map(list,
zip(*arr))
本节提供了关于矩阵转置的两个方法,一个比较清晰简单,另一个比较快速但有些隐晦.
有时候,数据到来的时候使用错误的方式,比如,你使用微软的ADO接口访问数据库,由于Python和MS在语言实现上的差别.
Getrows方法在Python中可能返回的是列值,和方法的名称不同.本节给的出的方法就是这个问题常见的解决方案,一个更清晰,一个更快速.
在列表递推式版本中,内层递推式表示选则什么(行),外层递推式表示选择者(列).这个过程完成后就实现了转置.
在zip版本中,我们使用*arr语法将一维数组传递给zip做为参数,接着,zip返回一个元组做为结果.然后我们对每一个元组使用list方法,产生了列表的列表(即矩阵).因为我们没有直接将zip的结果表示为list,
所以我们可以我们可以使用itertools.izip来稍微的提高效率(因为izip并没有将数据在内存中组织为列表).
import itertools
print map(list,
itertools.izip(*arr))
但是,在特定的情况下,上面的方法对效率的微弱提升不能弥补对复杂度的增加.
关于*args和**kwds语法:
*args(实际上,*号后面跟着变量名)语法在Python中表示传递任意的位置变量,当你使用这个语法的时候(比如,你在定义函数时使用),Python将这个变量和一个元组绑定,并保留所有的位置信息,
而不是具体的变量.当你使用这个方法传递参数时,变量可以是任意的可迭代对象(其实可以是任何表达式,只要返回值是迭代器).
**kwds语法在Python中用于接收命名参数.当你用这个方式传递参数时,Python将变量和一个dict绑定,保留所有命名参数,而不是具体的变量值.当你传递参数时,变量必须是dict类型(或者是返回值为dict类型的表达式).
如果你要转置很大的数组,使用Numeric Python或其它第三方包,它们定义了很多方法,足够让你头晕的.
相关说明:
zip(...)
zip(seq1 [,
seq2 [...]]) -> [(seq1[0], seq2[0] ...),
(...)]
Return a
list of tuples, where each tuple contains the i-th element
from each of
the argument sequences. The returned list is truncated
in length to
the length of the shortest argument sequence.
⑤ 求解一个python数列问题
数列推导式,
z=[int(x)+1forxinboard]
意思是数组z由int(x)+1组成,x是数组board中的元素
y=[int(4)+1forxinboard]
意思是数组z由int(4)+1组成,forxinboard决定数组y的长度
中括号中的x属于临时变量,与你定义的x是无关的,不信你在程序最后加上print(x)
你会发现x的值不会受到影响
⑥ python 字符串反转 一堆数字中间几个翻转
[::-1]实现翻转功能。
Python 的切片功能实际上比很多程序员认为的更强大。
a = m [ 0 : 100 : 10 ] # 带步进的切片(步进值=10)
注意:步进值为step
当step > 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从左往右**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的左边,否则返回值为空
当step < 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从右往左**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的右边,否则返回值为空
⑦ python 怎么将一个数组逆序输出
工具/材料:电脑、Python、Pycharm
1、首先,打开Python,定义一个数组,其值为空。
⑧ python数列翻转,编出来完全不对,哪位大哥帮帮忙
题主你好,
代码及测试截图如下:
说明: 写的比较啰嗦.
希望可以帮到题主, 欢迎追问.
⑨ Python开数组也太消耗时间了吧
(因为上次回复引起提者的反感修改如下)
1.python的确如楼上所说,更适合快速。但是如果一定要有效率也不是没有办法。通常会用C接口。比如象是海量数据处理,我经常用ctypes这个库,节约内存,同时也提高效率
2.python的库有些是C语言写的,也优化过,其实速度并不是想象的那么慢。也就比JAVA慢一点吧。我曾经对比过,同样的计算,优化过的python程序比C语言都要快10倍
3.python语言里整型也是对象。通常不会用它直接做大型数组。
python在科学计算里是很受欢迎的。方便 ,开发速度快,其实效率也还是很快的。曾经用python做过一个海量数据分析的分布式数据分析软件。 感觉还是很好的。 这套系统运行在一组只有2G-4G内存的老的服务器上。那些服务器的计算速度连我的奔腾CPU的笔记本都比不上。不过依然可以处理几千万的用户数据。
⑩ python中列表比词典的查找操作插入要慢很多
翻任意一本数据结构和算法分析的书,里面都有顺序表查找和Hash表查找的例子,以及理论分析。顺序表的话平均查找时间为O(n),hash表查找时间为O(1)。还有插入的时间没有算在内。
python的字典操作的详细实现,我查过,在《代码之美》一书里面有python的设计人员的详细分析。我们几句话讲不清楚。
http://book.douban.com/subject/3224524/
还有就是你的程序如果只是希望记录不重复的单词,用set对象代码可以更好看一点。