小编Vin*_*ard的帖子

如何从Python列表中删除一个实例?

因此,我有一个Python脚本,该脚本读取篮球比赛的逐项比赛的.csv文件,以按阵容计算出加/减。它会在球员的姓氏列表中跟踪地板上的当前球员,并且当一个团队有两个具有相同姓氏的球员时,我会遇到一个错误(逐次比赛数据不使用名字,仅数字和姓氏,而我不跟踪其数字)。当我在重复名称之一上使用lineup.remove(player)时,问题就来了,它从列表中同时删除了这两个名称。有一种简单的方法可以只删除一个,如果可以,我可以指定哪个吗?

示例列表将是

['JONES', 'PATTERSON', 'SMITH', 'JONES', 'WILLIAMS']
Run Code Online (Sandbox Code Playgroud)

python list

2
推荐指数
1
解决办法
4133
查看次数

理解Haskell类型

我已设法实现模拟过滤器功能(经过多次尝试)

filter' :: (Num a, Eq a) => (a -> Bool) -> [a] -> [a]
filter' a [] = []
filter' a (x:xs) = if a x
  then x : filter' a xs
  else filter' a xs
Run Code Online (Sandbox Code Playgroud)

我不清楚的是类型声明

filter' :: (Num a, Eq a) => (a -> Bool) -> [a] -> [a]
-- filter' (<10) [1,2,3] 
-- output = []
Run Code Online (Sandbox Code Playgroud)

我们传入(<10) [1,2,3].但是在类型声明中,(a -> Bool)我们传递一个来自列表的递归,输出为true或false.然而,表达测试(<10)?怎么样我们为什么不添加另一个Bool?

haskell

2
推荐指数
1
解决办法
81
查看次数

如何防止列表在用作函数中的参数后发生更改?

我有一些代码没有按照我的意愿输出结果。

代码

def func_a(list1):
    list1.insert(2,'3')
    list1.append('c')
    return (list1)

def main():
    list_1 = ['1','2','a','b']    
    list_2 = func_a(list_1)
    print (list_1)
    print ("\n")
    print (list_2)

main()
Run Code Online (Sandbox Code Playgroud)

此代码的输出是:

['1', '2', '3', 'a', 'b', 'c']


['1', '2', '3', 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

我希望它是:

['1', '2', 'a', 'b']


['1', '2', '3', 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x

2
推荐指数
1
解决办法
812
查看次数

Python类继承没有做我认为应该做的事情

我想我理解了python中的类继承,基本上你可以继承子类的父类的属性以便重用,并且还可以"添加"它以使更复杂的类.

这是我的问题:我有一个Car下面的类有(model, color, mpg)参数,之后我创建了一个名为ElectricCar从父Car类继承的新子类...现在当我调用ElectricCar"时(battery_type, model, color, mpg),我得到以下错误:

TypeError:init()只需要2个参数(给定5个参数)

我知道要解决它.我需要添加self.model,self.colorself.mpgElectricCar类.但为什么我必须这样做?如果我需要在子类上重新定义,这似乎会破坏继承的目的.

class Car(object):
    condition = "new"
    def __init__(self, model, color, mpg):
        self.model = model
        self.color = color
        self.mpg   = mpg

my_car = Car("DeLorean", "silver", 88)

class ElectricCar(Car):
    def __init__(self,battery_type):
        self.battery_type = battery_type

my_car = ElectricCar("molten salt", "Honda","black", "33")
Run Code Online (Sandbox Code Playgroud)

python python-2.7

2
推荐指数
1
解决办法
71
查看次数

是否可以将其包装在Python"with"语句中?

是否可以使用它来实现以下目标?(使用"with"关键字)

之前:

try:
    raise Exception("hello")
except Exception as e:
    print "GOT IT"
Run Code Online (Sandbox Code Playgroud)

期望的效果:

def safety():
    try:
        yield
    except Exception as e:
        print "GOT IT"

with safety():
    raise Exception("hello")
Run Code Online (Sandbox Code Playgroud)

它只是使代码更清洁.目前正在运行第二个代码段会出现错误:

Traceback (most recent call last):
  File "testing.py", line 25, in <module>
    with safety():
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

c ++中'char()'和'char'有什么区别?

在我写boost::spirit::qi规则时,我偶然发现了这一点.我写了一个不正确的规则声明,我通过添加括号来修复.在我看来,我不知道为什么会有所作为.

char和之间有什么区别char()

这是一个最小的例子,显示了它的相关性.

测试A并且B是等效的.测试C编译但未通过测试.测试D已注释掉,不会使用以下消息进行编译:C2440: 'static_cast' : cannot convert from 'skipper_type' to 'char'.(类型稍微复杂一点,错误就是C2664)

测试示例仅用于说明charvs 的使用在哪些方面char()有所不同.我的问题是两者之间的区别是什么.

#include <iostream>
#include <string>
#define BOOST_TEST_MODULE Main
#include <boost/test/unit_test.hpp>
#include <boost/spirit/include/qi.hpp>

using std::string;
namespace qi = boost::spirit::qi;
using Iterator = std::string::iterator;
using Skipper = qi::space_type;

Skipper skipper = qi::space;

void CHECK_ITERATOR(Iterator p, Iterator end)
{
    if (p != end)
    {
        BOOST_CHECK_MESSAGE(p == end, "Remaining: " …
Run Code Online (Sandbox Code Playgroud)

c++

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

返回对临时对象的引用时出错

我在 C++ 中有以下模板函数

template<class S, class T> const T& safe_retrieve
(vector<T> const& data, vector<S> const& keys, const S& key)
{
    assert(data.size() == keys.size());
    typename vector<S>::const_iterator it = binary_find(keys.begin(), keys.end(), key);
    assert(it != keys.end());
    size_t index = static_cast<size_t>(it - keys.begin());
    return data.at(index);
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

 error: returning reference to temporary [-Werror=return-local-addr]
Run Code Online (Sandbox Code Playgroud)

我理解此错误的含义,但我不明白为什么我返回的引用是临时的。

c++

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

Python Unittest - assertRaises的意外用法?

我想知道是否有办法做到以下几点:

class Test_Vector_test(unittest.TestCase):
    def test_add(self):
        vector1 = Vector(2,2,2)
        scalar = 1
        self.assertRaises(NotImplementedError, vector1+scalar)
Run Code Online (Sandbox Code Playgroud)

此测试失败,出现以下错误代码:

Traceback (most recent call last):
  File "/Users/sahandz/Documents/School/Programmeringsteknik och Matlab/dd1315pylab3-master/test/test_Vector.py", line 14, in test_add
    self.assertRaises(NotImplementedError, vector1+scalar)
  File "/Users/sahandz/Documents/School/Programmeringsteknik och Matlab/dd1315pylab3-master/lab/Vector.py", line 17, in __add__
    raise NotImplementedError
NotImplementedError

----------------------------------------------------------------------
Ran 3 tests in 0.007s

FAILED (errors=1)
Run Code Online (Sandbox Code Playgroud)

即使你可以看到它实际上引起了错误.如何在使用方法的情况下达到所需的功能(检查是否vector1+scalar引发NotImplementedError)?vector1.__add__

python

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

为什么Python解释器使用repr()来打印表达式?

为什么Python解释器用于repr()打印表达式?

例如:

>>> S = "First line.\nSecond line."
>>> S
'First line.\nSecond line.'
Run Code Online (Sandbox Code Playgroud)

当然我可以str()通过print语句触发:

>>> print S
First line.
Second line.
Run Code Online (Sandbox Code Playgroud)

但是为什么str()在交互模式下不会默认触发?在许多方面,它似乎是一个更好的选择.

python

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

找到一个10位整数,其中前n位可从1到n整除

寻找具有不同数字的10位整数,以便前n个数字可从1到n整除.

一个较小的例子是123.

1可被1整除,
12可被1整除,2
123可被1,2和3整除

我写了一些代码来尝试自动执行此操作:

import sympy
import itertools

x = itertools.permutations('1234567890',10)

for s in x:

    string_number = ''.join(s)

    for j in range(1, len(string_number)):

        a = set(range(1,j+1))

        divisors = set( sympy.divisors( int(string_number[:j] ) ) )

        if not (a.issubset(divisors) and a!=divisors):
            break
    print('FOUND IT %s'%string_number)
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,我认为这是因为最后一点的逻辑.我怎样才能确保如果一个数字违反条件,我继续下一个数字,如何确保如果数字服从条件,我选择正确的数字打印?

python

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

标签 统计

python ×7

python-2.7 ×3

c++ ×2

haskell ×1

list ×1

python-3.x ×1