小编Mar*_*ina的帖子

将map()应用于Swift中的字典最简洁的方法是什么?

我想在字典中的所有键上映射一个函数.我希望像下面这样的东西可以工作,但过滤器不能直接应用于字典.实现这一目标的最简洁方法是什么?

在这个例子中,我试图将每个值递增1.但这对于示例来说是偶然的 - 主要目的是弄清楚如何将map()应用于字典.

var d = ["foo" : 1, "bar" : 2]

d.map() {
    $0.1 += 1
}
Run Code Online (Sandbox Code Playgroud)

dictionary swift

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

在Swift中列出理解

语言指南没有透露列表理解的痕迹.在Swift中实现这一目标的最佳方法是什么?我正在寻找类似的东西:

evens = [ x for x in range(10) if x % 2 == 0]
Run Code Online (Sandbox Code Playgroud)

list-comprehension swift

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

如何在bash中的正斜杠上拆分字符串

示例字符串:

/ GASG /串

预期结果 : string

要删除的字符:"/"符号之间的所有字符,包括符号

string bash split

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

处理用Python解析的csv文件中的额外换行符(回车)?

我有一个CSV文件,其中包含包含换行符的字段,例如:

A, B, C, D, E, F
123, 456, tree
, very, bla, indigo
Run Code Online (Sandbox Code Playgroud)

(在这种情况下,第二行中的第三个字段是"tree \n"

我尝试了以下方法:

import csv
catalog = csv.reader(open('test.csv', 'rU'), delimiter=",", dialect=csv.excel_tab)
for row in catalog:
    print "Length: ", len(row), row
Run Code Online (Sandbox Code Playgroud)

我得到的结果是这样的:

Length:  6 ['A', ' B', ' C', ' D', ' E', ' F']
Length:  3 ['123', ' 456', ' tree']
Length:  4 ['   ', ' very', ' bla', ' indigo']
Run Code Online (Sandbox Code Playgroud)

有谁知道如何快速删除多余的换行符?

谢谢!

python csv newline

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

python中的Growl通知

在python中使用Growl但是没有出现任何运气.使用以下代码.使用Growl 1.3.3在OSX Lion上运行.有人这个有用吗?

import Growl

notifier = Growl.GrowlNotifier(applicationName='mzgrowl', notifications=['alive'])
notifier.register()
notifier.notify('alive', 'mzgrowl', 'test message')
Run Code Online (Sandbox Code Playgroud)

python macos growl

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

Swift中的字数统计

在Swift中编写简单的字数统计函数有什么更优雅的方法?

//Returns a dictionary of words and frequency they occur in the string
func wordCount(s: String) -> Dictionary<String, Int> {
    var words = s.componentsSeparatedByString(" ")
    var wordDictionary = Dictionary<String, Int>()
    for word in words {
        if wordDictionary[word] == nil {
            wordDictionary[word] = 1
        } else {
            wordDictionary.updateValue(wordDictionary[word]! + 1, forKey: word)
        }
    }
    return wordDictionary
}

wordCount("foo foo foo bar")
// Returns => ["foo": 3, "bar": 1]
Run Code Online (Sandbox Code Playgroud)

algorithm swift

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

Xcode中的TDD工作流程 - 如何在进行红绿重构时"快速修复"?

使TDD变得更好的一个原因是在编写测​​试后生成代码的能力.这是通过Eclipse中的Quick Fix选项(Cmd-F1)完成的 - 或者使用Jetbrains工具中的Alt-Enter使用类似选项.大多数用法只涉及四个选项:

  • 创建新课程
  • 创建新方法
  • 创建新属性
  • 创建新的实例变量

有没有办法使用插件,Automator或其他任何东西将此功能添加到Xcode?我觉得只有其中四个我可以回到使用Xcode而不是被困在Appcode中.

iphone tdd xcode objective-c redgreen

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

列出具有多个变量的理解

有没有办法让列表理解中的两个或多个项目出列.

即我想做这样的事情:

>>> q = [1, 2, 3, 4]
>>> r = [x+y for x, y in q]
** This does not work though :( **
Run Code Online (Sandbox Code Playgroud)

预期:

>>> r
[3, 7]
Run Code Online (Sandbox Code Playgroud)

python

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

有没有办法将Xcode键绑定导入AppCode

我需要开始使用AppCode,因为Xcode不支持red-green-refactor工作流程.然而,IntelliJ键绑定真的很烦人 - 有没有办法导入Xcode键绑定批发?

xcode appcode

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

为什么步行迭代器比将其转换为列表并查询长度要慢?

我得到了一些非常令人惊讶的结果,这些结果似乎表明将迭代器包装在列表中更有效,并且与使用lambda行走它相比,获得它的长度.这怎么可能?直觉会建议分配所有这些列表会更慢.

是的 - 我知道你不能总是这样做,因为迭代器可以是无限的.:)

from itertools import groupby
from timeit import Timer

data = "abbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccac" 

def rle_walk(gen):
    ilen = lambda gen : sum(1 for x in gen)
    return [(ch, ilen(ich)) for ch,ich in groupby(data)]

def rle_list(data):
    return [(k, len(list(g))) for k,g in groupby(data)]

# randomy data
t = Timer('rle_walk("abbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccac")', "from __main__ import rle_walk; gc.enable()")
print t.timeit(1000)

t = Timer('rle_list("abbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccacabbbccac")', "from __main__ import rle_list; gc.enable()")
print t.timeit(1000)

# chunky blocks
t = Timer('rle_walk("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccc")', "from __main__ import rle_walk; gc.enable()")
print t.timeit(1000)

t …
Run Code Online (Sandbox Code Playgroud)

python optimization

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

Swift需要奇怪的铸造

我正在观看WWDC2014上的一些视频并尝试编写我喜欢的代码,但我注意到的一个奇怪的事情是Swift一直对我生气并希望我投射到不同的数字类型.这很容易,但在WWDC的视频中他们不需要这样做.以下是"Interface Builder的新功能"中的示例:

-M_PI/2一直给我错误:"无法找到接受提供的参数的'/'的重载'

有没有人有这个问题的解决方案,这不仅仅涉及投射,因为有明显的另一种方式这样做?对于类似的问题,我有很多例子.

if !ringLayer {
            ringLayer = CAShapeLayer()

            let innerRect = CGRectInset(bounds, lineWidth / 2.0, lineWidth / 2.0)
            let innerPath = UIBezierPath(ovalInRect: innerRect)

            ringLayer.path = innerPath.CGPath
            ringLayer.fillColor = nil
            ringLayer.lineWidth = lineWidth
            ringLayer.strokeColor = UIColor.blueColor().CGColor
            ringLayer.anchorPoint = CGPointMake(0.5, 0.5)
            ringLayer.transform = CATransform3DRotate
                 (ringLayer.transform, -M_PI/2, 0, 0, 1)

            layer.addSublayer(ringLayer)
        }
        ringLayer.frame = layer.bounds
Run Code Online (Sandbox Code Playgroud)

swift

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

在Swift中将String转换为[Character]的最佳方法是什么?

我想在字符串上运行一个过滤器.我的第一次尝试失败,因为字符串没有自动转换为Character [].

var s: String = "abc"
s.filter { $0 != "b" }
Run Code Online (Sandbox Code Playgroud)

如果我用下面的代码笨拙地将String转换为Character [],它将按预期工作.但肯定有一个更简洁的方式?

var cs:Character[] = []
for c in s {
    cs =  cs + [c]
}

cs = cs.filter { $0 != "b" }

println(cs)
Run Code Online (Sandbox Code Playgroud)

swift

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