相关疑难解决方法(0)

python:避免列表的zip截断

我有以下使用zip()的python代码,它似乎导致意外的数据截断.

inc_data = [[u'Period Ending', u'Dec 31, 2012', u'Dec 31, 2011', u'Dec 31, 2010'],
            [u'Total Revenue\n', u'104,507,100\n', u'106,916,100\n', u'99,870,100\n'],
            [u'Cost of Revenue\n',u'56,000,000\n']
            ]

inc_data2 = zip(*inc_data)
for i in inc_data2:
    print i
Run Code Online (Sandbox Code Playgroud)

它只打印:

(u'Period Ending', u'Total Revenue\n', u'Cost of Revenue\n')
(u'Dec 31, 2012', u'104,507,100\n', u'56,000,000\n')
Run Code Online (Sandbox Code Playgroud)

但我希望它打印以下内容,但显然我必须u''手动添加填充程序以防止zip()截断inc_data.但我不知道如何编码.

(u'Period Ending', u'Total Revenue\n', u'Cost of Revenue\n')
(u'Dec 31, 2012', u'104,507,100\n', u'56,000,000\n')
(u'Dec 31, 2011', u'106,916,100\n', u'')
(u'Dec 31, 2010', u'99,870,100\n', u'')
Run Code Online (Sandbox Code Playgroud)

要描述上面的inc_data,

inc_data = [ [x],
             [y],
             [z] ]   
Run Code Online (Sandbox Code Playgroud)

如何使x,y和z长度相同?长度是x,y或z的最大长度?

(u'Period …
Run Code Online (Sandbox Code Playgroud)

python list truncation

9
推荐指数
1
解决办法
1993
查看次数

用python替换Filename字符

我有一些代码在文件名加载的末尾添加了"_manual"这个词.我需要更改脚本,以便删除文件名(ES)的最后两个字母,然后用_ES_Manual替换它,例如: AC-5400ES.txt - > AC-5400_ES_manual.txt

我如何将该功能合并到此代码中?

folder = r"C:/Documents and Settings/DuffA/Bureaublad/test"
import os # glob is unnecessary
for root, dirs, filenames in os.walk(folder):
    for filename in filenames:
        fullpath = os.path.join(root, filename)
        filename_split = os.path.splitext(fullpath) # filename and extensionname (extension in [1])
        filename_zero, fileext = filename_split
        print fullpath, filename_zero + "_manual" + fileext
        os.rename(fullpath, filename_zero + "_manual" + fileext)
Run Code Online (Sandbox Code Playgroud)

python filenames replace

8
推荐指数
2
解决办法
2万
查看次数

如何随着时间的推移绘制信号的积分?

我有一个时间依赖的信号.

我希望随着时间的推移绘制其积分,其中时间为x轴,积分值为y轴.

有没有Python方法这样做?

更具体:

我有一个时间数组,time和一个信号数组,signal.它们具有相同的维度.

我需要整合signaltimescipy.integrate.trapz().

我希望看到随着时间的推移积分变化,而不是得到最终积分.

python numpy matplotlib scipy

8
推荐指数
2
解决办法
5835
查看次数

如何在Python中反转单词

如何在Python中反转单词?

例如:

SomeArray=('Python is the best programming language')
i=''
for x in SomeArray:
      #i dont know how to do it

print(i)
Run Code Online (Sandbox Code Playgroud)

结果必须是:

egaugnal gnimmargorp tseb eht si nohtyP
Run Code Online (Sandbox Code Playgroud)

请帮忙.并解释.
PS:
我不能用[::-1].我知道这件事.我必须在面试中这样做,只使用循环:)

python string reverse

8
推荐指数
1
解决办法
7万
查看次数

程序从python中的字符串中提取每个替代字母?

Python程序通常简洁明了,通常需要其他编程语言(我知道)的一堆行可以在python中用一行或两行完成.我试图编写的一个这样的程序是从字符串中提取所有其他字母.我有这个工作代码,但想知道是否有其他简洁方法可行?

>>> s
'abcdefg'
>>> b = ""
>>> for i in range(len(s)):
...   if (i%2)==0:
...      b+=s[i]
... 
>>> b
'aceg'
>>> 
Run Code Online (Sandbox Code Playgroud)

python string

8
推荐指数
2
解决办法
3万
查看次数

Python:A [1:]中x的含义是什么?

当我发现这个时,我试图从维基百科中了解Kadane的算法:

def max_subarray(A):
    max_ending_here = max_so_far = A[0]
    for x in A[1:]:
        max_ending_here = max(x, max_ending_here + x)
        max_so_far = max(max_so_far, max_ending_here)
    return max_so_far
Run Code Online (Sandbox Code Playgroud)

我不熟悉Python.我尝试谷歌这种语法的作用,但我找不到正确的答案因为我不知道它叫什么.但是,我认为A[1:]相当于省略A[0],所以我认为for x in A[1:]:相当于for(int i = 1; i < A.length; i++)Java

但是,改变后for x in A[1:]:for x in range(1,len(A)),我得到了错误的结果

对不起,如果这是一个愚蠢的问题,但我不知道在哪里可以找到答案.有人可以告诉我这个语法是做什么的,它叫做什么?另外,你能给我相当于for x in A[1:]:Java吗?

python

8
推荐指数
2
解决办法
4万
查看次数

是否可以从参数列表中删除项目?

def foo(name, *args, **kwargs):
Run Code Online (Sandbox Code Playgroud)

*args如果它的长度 ( len(args)) 大于 2,我需要删除 的前两个参数。可以这样做吗?

这就是我需要这样做的原因:我有以下功能:

def foo(name, xml='my.xml', xsd='my.xsd', *otherfiles):
    print('name: ' + name)
    print('xml: ' + xml)
    print('xsd: ' + xsd)
    print(otherfiles)
Run Code Online (Sandbox Code Playgroud)

我需要向该函数的参数添加一个可选的布尔参数,而不破坏向后兼容性。所以我将函数更改为:

def foo2(name, *otherfiles, **kwargs):
    kwargs.setdefault('relativePath', True)
    if len(otherfiles)>0:
        xml = otherfiles[0]
    else:
        kwargs.setdefault('xml', 'my.xml')
        xml = kwargs['xml']

    if len(otherfiles)>1:
        xsd = otherfiles[1]
    else:
        kwargs.setdefault('xsd', 'my.xsd')
        xsd = kwargs['xsd']
    print('name: ' + name)
    print('xml: ' + xml)
    print('xsd: ' + xsd)
    print(otherfiles)
Run Code Online (Sandbox Code Playgroud)

foo现在我通过检查和 的输出是否foo2相同来测试向后兼容性:

foo('my_name', '../my.xml', …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

8
推荐指数
1
解决办法
1万
查看次数

python双冒号,-1为第三个参数

a = [1,2,3,4,5]作为一个例子.从我的直觉来看,我认为a[::-1]是一样的a[0:len(a):-1].但结果变成了错误:

>>> a = [1,2,3,4,5]
>>> print a[::-1]
[5, 4, 3, 2, 1]
>>> print a[0:len(a):-1]
[]
>>> print a[0:3:-1]
[]
>>> print a[0:2:-1]
[]
>>> print a[:2:-1]
[5, 4]
>>> print a[:0:-1]
[5, 4, 3, 2]
>>> print a[0:-1]
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我实际上无法理解最后6次尝试的输出.谁能给我一些想法?谢谢吨.

python python-2.7

8
推荐指数
1
解决办法
1333
查看次数

Pythonic方式有"大小安全"切片

以下是/sf/users/62541/Explain Python的切片表示法的回答.

如果项目少于您的要求,Python对程序员很友好.例如,如果您要求[: - 2]并且只包含一个元素,则会得到一个空列表而不是错误.有时您会更喜欢错误,因此您必须意识到这可能会发生.

因此,当错误出现时,Pythonic的方法是什么?是否有更多的Pythonic方法来重写这个例子?

class ParseError(Exception):
    pass

def safe_slice(data, start, end):
    """0 <= start <= end is assumed"""
    r = data[start:end]
    if len(r) != end - start:
        raise IndexError
    return r

def lazy_parse(data):
    """extract (name, phone) from a data buffer.
    If the buffer could not be parsed, a ParseError is raised.

    """

    try:
        name_length = ord(data[0])
        extracted_name = safe_slice(data, 1, 1 + name_length)
        phone_length = ord(data[1 + name_length])
        extracted_phone = safe_slice(data, 2 + name_length, …
Run Code Online (Sandbox Code Playgroud)

python slice

7
推荐指数
2
解决办法
1055
查看次数

如何从列表中切割中间元素

相当简单的问题.说我有一个列表,如:

a = [3, 4, 54, 8, 96, 2]
Run Code Online (Sandbox Code Playgroud)

我可以使用切片在列表中间省略一个元素来生成这样的东西吗?

a[some_slicing]
[3, 4, 8, 96, 2]
Run Code Online (Sandbox Code Playgroud)

这个元素54被遗漏了.我猜想这可以解决问题:

a[:2:]
Run Code Online (Sandbox Code Playgroud)

但结果不是我的预期:

[3, 4]
Run Code Online (Sandbox Code Playgroud)

python slice

7
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×10

python-2.7 ×2

slice ×2

string ×2

filenames ×1

list ×1

matplotlib ×1

numpy ×1

replace ×1

reverse ×1

scipy ×1

truncation ×1