小编Lew*_*909的帖子

Python - 如何使用列表理解来填充命名元组值

我有以下类来创建一副牌:

import collections


Card = collections.namedtuple('Card', ['rank', 'suit', 'value'])


class FrenchDeck:
    ranks = [str(n) for n in range(2, 11)] + list('JQKA')
    suits = 'spades clubs hearts diamonds'.split()
    card_value = [str(n + 1) for n in range(len(ranks))]

    def __init__(self):
        self._cards = [Card(rank, suit, value)
                       for suit in self.suits
                       for rank in self.ranks
                       for value in self.card_value
                       ]

    def __len__(self):
        return len(self._cards)

    def __getitem__(self, position):
        return self._cards[position]

if __name__ == '__main__':
    FrenchDeck()
Run Code Online (Sandbox Code Playgroud)

我已将value值添加到卡中,以便为每张卡分配一个值,如下所示:

Card(rank='2', suit='spades', value='1')
Card(rank='2', suit='spades', value='2')
Card(rank='2', …
Run Code Online (Sandbox Code Playgroud)

python collections list namedtuple

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

Django - 如何更改 forms.ModelChoiceField 的值

我想使用forms.ModelChoiceField. 我已经阅读了很多关于这个主题的文档,但事实证明它很难达到预期的结果!

这是我的代码。

我有这个表格:

表格.py

from django import forms
from asset_db.models import Profiles


class SubmitJob(forms.Form):

    material_id = forms.CharField(max_length=8)
    workflow = forms.ModelChoiceField(queryset=Profiles.objects.distinct('name'))
    start_datepicker = forms.CharField(max_length=12)
    end_datepicker = forms.CharField(max_length=12)
Run Code Online (Sandbox Code Playgroud)

这个型号:

class Profiles(models.Model):

    id = models.DecimalField(6).auto_creation_counter
    name = models.CharField(max_length=256, default='null')
    target_path = models.CharField(max_length=256, default='null')
    target_profile = models.TextField(max_length=1024, default='null')
    package_type = models.CharField(max_length=256, default='null')
    video_naming_convention = models.CharField(max_length=256, default='null')
    image_naming_convention = models.CharField(max_length=256, default='null')
    package_naming_convention = models.CharField(max_length=256, default='null')

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

这是 HTML 输出:

<p><label for="id_workflow">Workflow:</label> <select id="id_workflow" name="workflow" required>
<option value="" selected="selected">---------</option>
<option …
Run Code Online (Sandbox Code Playgroud)

python forms django modelchoicefield

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

Django - 如何将数据添加到 ManyToMany 字段模型?

我有以下模型、视图和模板:

模型.py:

class Batch(models.Model):
    material_id = models.ManyToManyField(AssetMetadata)
    user = models.ForeignKey(User)

    def __str__(self):
        return 'Batch_' + str(self.pk) + '_' + self.user.username

class AssetMetadata(models.Model):

    material_id = models.CharField(max_length=256, blank=True)
    series_title = models.CharField(max_length=256, blank=True)
    season_title = models.CharField(max_length=256, blank=True)
    season_number = models.IntegerField(default=0)
    episode_title = models.CharField(max_length=256, blank=True)
    episode_number = models.IntegerField(default=0)
    synopsis = models.TextField(max_length=1024, blank=True)
    ratings = models.CharField(max_length=256, blank=True)

    def __str__(self):
        return self.material_id
Run Code Online (Sandbox Code Playgroud)

视图.py:

def assets_in_repo(request):

    asset_list = AssetMetadata.objects.order_by('id').all()
    page = request.GET.get('page', 1)
    paginator = Paginator(asset_list, 50)

    try:
        assets = paginator.page(page)
    except PageNotAnInteger:
        assets = paginator.page(1)
    except …
Run Code Online (Sandbox Code Playgroud)

django

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

Python - 如何用另一个列表中的字符串值替换列表中存储的字符串的值?

我有搜索堆栈溢出和谷歌搜索到这个问题的解决方案,遗憾的是我还没有找到解决方案.

我想用另一个列表中的字符串值替换列表中存储的字符串的值.

例如,我有两个列表:

list_a = ['file_x', 'file_x', 'file_x', 'file_x']
list_b = ['1', '2', '3', '4']
Run Code Online (Sandbox Code Playgroud)

我希望结果返回:

list_c =['file_1', 'file_2', 'file_3', 'file_4']
Run Code Online (Sandbox Code Playgroud)

我是python的新手,我正在努力做到这一点,我尝试使用for循环和str.replace()但我不知道如何匹配每个数组的键值并替换'x'的每个元素list_a,其中包含list_b元素的字符串值.

任何有关这方面的帮助将不胜感激.

python arrays string replace

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

Python - 有一种更优雅的方式来编写包含多个OR的IF语句

我有这个IF,OR声明:

a = 1
b = 2
c = 3
d = 4

if a == 5 or b == 5 or c == 5 or d == 5:
    # do something
else:
    # do something different
Run Code Online (Sandbox Code Playgroud)

我想知道这是不是最好的写作方式?

python

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

是否有更优雅的子串方式?

这是我的代码

file_name = Dir['path/xml/test/*.txt']
file_name.to_s # => ["path/xml/test/test.txt"]
Run Code Online (Sandbox Code Playgroud)

我想回来:

"test"
Run Code Online (Sandbox Code Playgroud)

我可以使用下面的代码:

file_name = Dir['path/xml/test/*.txt']
file_name.to_s[15,60].gsub(/.txt["]/,"").gsub(/]/,"")
Run Code Online (Sandbox Code Playgroud)

但它不是很优雅.是否有更优雅的方式只返回文件名没有.txt[]

ruby string filenames

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